د Glibc 2.31 سیسټم کتابتون خپرول

د شپږو میاشتو پراختیا وروسته خپور شوی د سیسټم کتابتون خوشې کول د GNU C کتابتون (glibc) 2.31، کوم چې په بشپړ ډول د ISO C11 او POSIX.1-2008 اړتیاو سره مطابقت لري. نوې ریلیز کې د 58 پراختیا کونکو څخه اصلاحات شامل دي.

په Glibc 2.31 کې تطبیق شوی پرمختګونه تاسو کولی شئ یادداشت کړئ:

  • د _ISOC2X_SOURCE میکرو اضافه شوي ترڅو د راتلونکي ISO معیار په مسوده کې تعریف شوي وړتیاوې فعاله کړي C2X. دا ځانګړتیاوې د _GNU_SOURCE میکرو کارولو یا د "-std=gnu2x" بیرغ سره په gcc کې د جوړولو په وخت کې هم فعال شوي؛
  • د سرلیک فایل "math.h" کې تعریف شوي دندو لپاره چې پایلې یې کوچني ډول ته راوباسي، اړونده عمومي ډول میکرو د "tgmath.h" فایل کې وړاندیز شوي، لکه څنګه چې د TS 18661-1: 2014 او TS مشخصاتو لخوا اړین دي. 18661-3: 2015;
  • د pthread_clockjoin_np() فنکشن اضافه شوی، کوم چې د تار بشپړیدو ته انتظار باسي، د وخت پای په پام کې نیولو سره (که د بشپړیدو دمخه وخت پای ته ورسیږي، فنکشن به یوه تېروتنه بیرته راولي). برعکس pthread_timedjoin_np(), په pthread_clockjoin_np() کې دا ممکنه ده چې د وخت پای محاسبه کولو لپاره د ټایمر ډول تعریف کړئ - CLOCK_MONOTONIC (د سیسټم لخوا د خوب په حالت کې مصرف شوي وخت په پام کې نیسي) یا CLOCK_REALTIME؛
  • د DNS حل کونکی اوس په /etc/resolv.conf کې د اعتماد اعلان اختیار ملاتړ کوي او په _res.options کې د RES_TRUSTAD بیرغ، کله چې ټاکل کیږي، د DNSSEC بیرغ د DNS غوښتنو کې لیږدول کیږي AD (مستند شوي معلومات). په دې حالت کې، د سرور لخوا ټاکل شوی د AD بیرغ د غوښتنلیکونو لپاره شتون لري چې د res_search() په څیر فعالیت کوي. په ډیفالټ کې، که وړاندیز شوي اختیارونه نه وي ټاکل شوي، glibc په غوښتنو کې د AD بیرغ نه مشخص کوي او په اتوماتيک ډول یې په ځوابونو کې پاکوي، دا په ګوته کوي چې د DNSSEC چکونه ورک دي؛
  • د Glibc لپاره د کاري سیسټم کال بانډونو جوړول نور د لینکس کرنل سرلیک فایلونو نصبولو ته اړتیا نلري. استثنا د 64-bit RISC-V جوړښت دی؛
  • له منځه وړل زیانمنتیا CVE-2019-19126، کوم چې تاسو ته اجازه درکوي د محافظت څخه تیر شئ
    ASLR په برنامو کې د setuid بیرغ سره او په بار شوي کتابتونونو کې د LD_PREFER_MAP_32BIT_EXEC چاپیریال متغیر د مینځلو له لارې د پتې ترتیب مشخص کړئ.

هغه بدلونونه چې مطابقت ماتوي:

  • totalorder()، totalordermag()، او د نورو فلوټینګ پوائنټ ډولونو لپاره ورته افعال اوس په حالت کې د ارزښتونو بدلولو په اړه خبرداری له مینځه وړلو لپاره د دلیل په توګه پوائنټرونه مني ند TS 18661-1 وړاندیزونو سره سم د راتلونکي C2X معیار لپاره وړاندیز شوی.
    موجود اجرایوي وړونکي چې په مستقیم ډول د تیري نقطې دلیلونه تیریږي پرته له تعدیل څخه به دوام وکړي؛

  • د اوږدې مودې ضایع شوي وخت فعالیت نور د glibc سره تړلي بائنریونو لپاره شتون نلري، او د دې تعریف د وخت څخه لیرې شوی. د سیسټم وخت تنظیم کولو لپاره ، د clock_settime فنکشن وکاروئ. په راتلونکي کې، موږ پلان لرو چې د ضایع شوي فټیم فعالیت لرې کړو، او همدارنګه د sys/timeb.h سرلیک فایل (gettimeofday یا clock_gettime باید د ftime پرځای وکارول شي)؛
  • د gettimeofday فنکشن نور د سیسټم په اوږدو کې د وخت زون په اړه معلومات نه تیروي (دا خصوصیت د 4.2-BSD ورځو کې اړونده و او د ډیرو کلونو لپاره له مینځه وړل شوی و). د 'tzp' دلیل باید اوس یو نول پوائنټر تیر شي، او د ځایی وخت() فنکشن باید د اوسني وخت پراساس د وخت زون معلوماتو ترلاسه کولو لپاره وکارول شي. د gettimeofday د غیر صفر دلیل 'tzp' سره زنګ وهل به د وخت زون جوړښت کې خالي ساحې tz_minuteswest او tz_dsttime بیرته راولي. د gettimeofday فعالیت پخپله د POSIX لاندې له مینځه وړل شوی (clock_gettime د gettimeofday پرځای وړاندیز شوی) ، مګر هیڅ پلان شتون نلري چې دا له glibc څخه لرې کړي؛
  • settimeofday نور نور د وخت تنظیم کولو او د وخت سمولو آفسیټ لپاره د پیرامیټونو یوځل تیرولو ملاتړ نه کوي. کله چې د settimeofday زنګ ووهئ، نو یو دلیل (وخت یا آفسیټ) باید اوس null ته وټاکل شي، که نه نو د فنکشن کال به د EINVAL تېروتنې سره ناکام شي. د gettimeofday په څیر، د settimeofday فعالیت په POSIX کې له مینځه وړل شوی او سپارښتنه کیږي چې د clock_settime فنکشن یا د افعالونو د adjtime کورنۍ لخوا بدل شي؛
  • د SPARC ISA v7 جوړښت لپاره ملاتړ بند شوی دی (د اوس لپاره د v8 ملاتړ ساتل شوی، مګر یوازې د پروسس کونکو لپاره چې د CAS لارښوونو مالتړ کوي، لکه د LEON پروسیسرونه، نه د SuperSPARC پروسیسر).
  • که جوړه په کې ناکامه شي "لټ"، په کوم کې چې لینکر د فنکشن سمبولونه نه لټوي تر هغه چې هغه فنکشن ته لومړی زنګ ووهي، dlopen فنکشن اوس پروسه پای ته رسولو ته اړوي (پخوا د ناکامۍ په صورت کې NULL بیرته راستنیدل)؛
  • د MIPS هارډ فلوټ ABI لپاره، د اجرا وړ سټیک اوس کارول کیږي، پرته لدې چې جوړښت په ښکاره ډول د "-enable-kernel=4.8" پیرامیټر له لارې د لینکس کرنل 4.8.0+ کارول محدود کړي (د 4.8 پورې د کرنلونو سره، کریشونه دي. د ځینو MIPS تشکیلاتو لپاره مشاهده شوی؛
  • د وخت له مینځه وړلو پورې اړوند د سیسټم کالونو شاوخوا پابندونه د وخت 64 سیسټم کال کارولو لپاره لیږدول شوي، که چیرې شتون ولري (په 32-bit سیسټمونو کې، glibc لومړی د نوي سیسټم کالونه هڅه کوي چې د 64-bit وخت ډول اداره کوي، او که هیڅ شتون نلري، راټیټیږي. بیرته پخوانیو 32-bit تلیفونونو ته).

سرچینه: opennet.ru

Add a comment