Glibc 2.30 System Library Release

หลังจากหกเดือนของการพัฒนา การตีพิมพ์ การเปิดตัวไลบรารีระบบ ไลบรารี GNU C (glibc) 2.30ซึ่งเป็นไปตามข้อกำหนดของมาตรฐาน ISO C11 และ POSIX.1-2008 โดยสมบูรณ์ รุ่นใหม่ประกอบด้วยการแก้ไขจากนักพัฒนา 48 ราย

จากที่นำมาใช้ใน 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

เพิ่มความคิดเห็น