Glibc 2.31 سسٽم لائبريري رليز

ڇهن مهينن جي ترقي کان پوء شايع ٿيل سسٽم لائبريري ڇڏڻ GNU C لائبريري (glibc) 2.31، جيڪو مڪمل طور تي ISO C11 ۽ POSIX.1-2008 معيارن جي گهرجن سان پورو ڪري ٿو. نئين رليز ۾ 58 ڊولپرز کان فيڪس شامل آهن.

انهن مان جيڪي Glibc 2.31 ۾ لاڳو ڪيا ويا آهن سڌارا توهان نوٽ ڪري سگهو ٿا:

  • شامل ڪيو ويو _ISOC2X_SOURCE ميڪرو مستقبل جي ISO معيار جي مسودي ۾ وضاحت ڪيل صلاحيتن کي فعال ڪرڻ لاءِ C2X. اهي خاصيتون به فعال ٿين ٿيون جڏهن _GNU_SOURCE ميڪرو استعمال ڪيو وڃي يا جڏهن gcc ۾ ”-std=gnu2x“ پرچم سان تعمير ڪيو وڃي.
  • هيڊر فائل "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 سيٽيوڊ پرچم سان ۽ ايڊريس جي ترتيب کي ترتيب ڏيو لوڊ ٿيل لائبريرين ۾ LD_PREFER_MAP_32BIT_EXEC ماحول جي تبديلي جي ذريعي.

تبديليون جيڪي مطابقت کي ٽوڙيو:

  • totalorder()، totalordermag()، ۽ ٻين فلوٽنگ-پوائنٽ جي قسمن لاءِ ساڳيا ڪم هاڻي رياست ۾ قدرن کي تبديل ڪرڻ بابت ڊيڄاريندڙن کي ختم ڪرڻ لاءِ دليلن جي طور تي اشارو قبول ڪن ٿا. اين اينمستقبل جي C18661X معيار لاءِ تجويز ڪيل TS 1-2 جي سفارشن جي مطابق.
    موجوده عملدار جيڪي سچل نقطي دليلن کي پاس ڪن ٿا سڌو سنئون بغير ڪنهن ترميم جي هلائڻ جاري رکندا؛

  • glibc-linked binaries لاءِ ڊگھي ختم ٿيل اسٽائم فنڪشن هاڻي موجود ناهي، ۽ ان جي وصف وقت کان هٽائي وئي آهي. سسٽم جو وقت مقرر ڪرڻ لاء، clock_settime فنڪشن استعمال ڪريو. مستقبل ۾، اسان منصوبابندي ڪريون ٿا ته ختم ٿيل ftime فنڪشن، گڏوگڏ sys/timeb.h هيڊر فائل (gettimeofday يا clock_gettime ftime جي بدران استعمال ڪيو وڃي)؛
  • Gettimeofday فنڪشن هاڻي سسٽم-وائڊ ٽائم زون بابت معلومات نه ٿو پاس ڪري (هي فيچر 4.2-BSD جي ڏينهن ۾ لاڳاپيل هو ۽ ڪيترن سالن کان ختم ڪيو ويو آهي). 'tzp' دليل کي ھاڻي نال پوائنٽر پاس ڪيو وڃي، ۽ localtime() فنڪشن کي استعمال ڪيو وڃي موجوده وقت جي بنياد تي ٽائيم زون جي معلومات حاصل ڪرڻ لاء. غير صفر 'tzp' دليل سان gettimeofday کي ڪال ڪرڻ سان ٽائم زون جي جوڙجڪ ۾ خالي tz_minuteswest ۽ tz_dsttime فيلڊ واپس ٿيندا. Gettimeofday فنڪشن پاڻ POSIX تحت ختم ڪيو ويو آهي (clock_gettime gettimeofday جي بدران سفارش ڪئي وئي آهي)، پر ان کي glibc مان هٽائڻ جو ڪو به منصوبو ناهي؛
  • settimeofday هاڻي وقت مقرر ڪرڻ ۽ وقت کي درست ڪرڻ واري آفسيٽ لاءِ پيرا ميٽرن جي هڪ ئي وقت گذرڻ کي سپورٽ نٿو ڪري. جڏهن ڪال ڪري رهيو آهي settimeofday، انهن مان هڪ دليل (وقت يا آفسيٽ) هاڻي null تي مقرر ڪيو وڃي، ٻي صورت ۾ فنڪشن ڪال EINVAL غلطي سان ناڪام ٿي ويندي. Gettimeofday وانگر، POSIX ۾ settimeofday فنڪشن کي ختم ڪيو ويو آهي ۽ clock_settime فنڪشن يا افعال جي adjtime خاندان سان تبديل ڪرڻ جي سفارش ڪئي وئي آهي؛
  • SPARC ISA v7 فن تعمير لاءِ سپورٽ بند ڪئي وئي آھي (v8 سپورٽ ھاڻي لاءِ برقرار آھي، پر صرف انھن پروسيسرز لاءِ جيڪي CAS جي ھدايتن کي سپورٽ ڪن ٿا، جھڙوڪ LEON پروسيسرز، نه SuperSPARC پروسيسرز).
  • جيڪڏهن جوڙڻ ۾ ناڪام ٿئي ٿو "سست"، جنهن ۾ لنڪر ڪنهن فنڪشن جي علامتن جي ڳولا نه ڪندو آهي جيستائين ان فنڪشن کي پهرين ڪال نه ٿئي، ڊلوپن فنڪشن هاڻي عمل کي ختم ڪرڻ تي مجبور ڪري ٿو (اڳ ۾ ناڪامي تي NULL واپسي)؛
  • MIPS هارڊ فلوٽ ABI لاءِ، ايگزيڪيوٽيبل اسٽيڪ هاڻي استعمال ڪيو ويندو آهي، جيستائين بلڊ واضح طور تي "-enable-kernel=4.8" پيراميٽر ذريعي لينڪس ڪرنل 4.8.0+ جي استعمال کي محدود ڪري ٿو (4.8 تائين ڪنلن سان، حادثا آهن. ڪجهه MIPS ترتيبن لاء مشاهدو ڪيو ويو آهي؛
  • ٽائم مينيپوليشن سان لاڳاپيل سسٽم ڪالن جي چوڌاري بائنڊنگس کي استعمال ڪرڻ لاءِ منتقل ڪيو ويو آهي time64 سسٽم ڪال، جيڪڏهن موجود هجي (32-bit سسٽم تي، glibc پهريون ڀيرو نئين سسٽم ڪالن جي ڪوشش ڪري ٿو جيڪي 64-bit ٽائيم ٽائيپ کي هٿي وٺن ٿا، ۽ جيڪڏهن ڪو به نه آهي، گر. پراڻن 32-bit ڪالن ڏانهن واپس).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو