หลังจากหกเดือนของการพัฒนา
จากที่นำมาใช้ใน Glibc 2.30
- ตัวเชื่อมโยงแบบไดนามิกให้การสนับสนุนตัวเลือก “--preload” สำหรับการโหลดอ็อบเจ็กต์ที่แชร์ไว้ล่วงหน้า (คล้ายกับตัวแปรสภาพแวดล้อม LD_PRELOAD)
- เพิ่มฟังก์ชัน twalk_r ซึ่งคล้ายกับฟังก์ชัน twalk ที่มีอยู่แล้ว แต่ช่วยให้คุณสามารถส่งอาร์กิวเมนต์เพิ่มเติมไปยังฟังก์ชันโทรกลับที่กำหนดได้
- มีการเพิ่มฟังก์ชันใหม่ getdents64, gettid และ tgkill สำหรับ Linux;
- ตรวจสอบให้แน่ใจว่าฟังก์ชันการจัดการหน่วยความจำ malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign และ posix_memalign ออกพร้อมกับโค้ดระบุข้อผิดพลาด เมื่อขนาดอ็อบเจ็กต์ทั้งหมดเกินค่า PTRDIFF_MAX การเปลี่ยนแปลงนี้จะช่วยหลีกเลี่ยงพฤติกรรมที่ไม่ได้กำหนดไว้ เมื่อผลลัพธ์ของการจัดการตัวชี้นำไปสู่การโอเวอร์โฟลว์ของชนิด ptrdiff_t
- เพิ่มฟังก์ชัน POSIX pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock และ sem_clockwait คล้ายกับการเทียบเท่า "หมดเวลา" แต่ยังยอมรับพารามิเตอร์ clockid_t เพิ่มเติมเพื่อเลือกตัวจับเวลา - ข้อมูลการเข้ารหัส ข้อมูลประเภทอักขระ และตารางการทับศัพท์ได้รับการอัปเดตเพื่อรองรับข้อกำหนด Unicode 12.1.0
- ไลบรารี librt ไม่มีฟังก์ชัน clock_gettime, clock_getres, clock_settime, clock_getcpuclockid และ clock_nanosleep สำหรับแอปพลิเคชันใหม่อีกต่อไป แต่จะใช้คำจำกัดความใน libc โดยอัตโนมัติแทน
- ตัวเลือก "inet6" ถูกลบออกจาก /etc/resolv.conf แล้ว ลบแฟล็กล้าสมัย RES_USE_INET6, RES_INSECURE1 และ RES_INSECURE2 จาก resolv.h;
- เมื่อระบุตัวเลือก "--enable-bind-now" โปรแกรมที่ติดตั้งจะถูกผูกไว้โดยใช้แฟล็ก BIND_NOW
- ไฟล์ส่วนหัว sys/sysctl.h เฉพาะ Linux และฟังก์ชัน sysctl เลิกใช้แล้ว และแอปพลิเคชันควรใช้ /proc pseudo-FS แทน
- การสร้าง Glibc ต้องใช้ GCC 6.2 หรือใหม่กว่า (คอมไพเลอร์ใดๆ สามารถใช้สร้างแอปพลิเคชันได้)
- แก้ไขช่องโหว่แล้ว
CVE-2019-7309 ในการใช้ฟังก์ชัน memcmp สำหรับเก่า สถาปัตยกรรมย่อย x32 (เพื่อไม่ให้สับสนกับ x86 IA-32) ซึ่งส่งผลให้ฟังก์ชันส่งคืนค่า 0 ไม่ถูกต้องสำหรับสตริงที่ไม่ตรงกัน - แก้ไขช่องโหว่แล้ว
CVE-2019-9169 ซึ่งอาจทำให้ข้อมูลถูกอ่านจากพื้นที่นอกขอบเขตของบัฟเฟอร์เมื่อมีการประมวลผลนิพจน์ทั่วไปบางอย่าง
ที่มา: opennet.ru