Έκδοση βιβλιοθήκης συστήματος Glibc 2.30

Μετά από έξι μήνες ανάπτυξης δημοσιεύθηκε έκδοση βιβλιοθήκης συστήματος Βιβλιοθήκη GNU C (glibc) 2.30, το οποίο συμμορφώνεται πλήρως με τις απαιτήσεις των ISO C11 και POSIX.1-2008. Η νέα έκδοση περιλαμβάνει διορθώσεις από 48 προγραμματιστές.

Υλοποιήθηκε στο Glibc 2.30 βελτιώσεις μπορείτε να σημειώσετε:

  • Ο δυναμικός σύνδεσμος υποστηρίζει την επιλογή "--preload" για προφόρτωση κοινόχρηστων αντικειμένων (παρόμοια με τη μεταβλητή περιβάλλοντος LD_PRELOAD).
  • Προστέθηκε η συνάρτηση twalk_r, παρόμοια με την ήδη υπάρχουσα συνάρτηση twalk, αλλά σας επιτρέπει να μεταβιβάσετε ένα πρόσθετο όρισμα στη δεδομένη συνάρτηση επανάκλησης.
  • Για το Linux, έχουν προστεθεί νέες συναρτήσεις getdents64, gettid και tgkill.
  • Οι λειτουργίες διαχείρισης μνήμης malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign και posix_memalign τερματίζονται με κωδικό σφάλματος όταν το συνολικό μέγεθος αντικειμένου υπερβαίνει την τιμή PTRDIFF_MAX. Αυτή η αλλαγή αποφεύγει την απροσδιόριστη συμπεριφορά όταν το αποτέλεσμα ενός χειρισμού δείκτη οδηγεί σε υπερχείλιση του τύπου ptrdiff_t.
  • Προστέθηκαν οι προτεινόμενες συναρτήσεις POSIX pthread_cond_clockwait, pthread_mutex_clock,
    pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock και sem_clockwait, παρόμοια με τα "χρονισμένα" ισοδύναμα, αλλά επιπλέον λαμβάνοντας μια παράμετρο clockid_t για να επιλέξετε ένα χρονόμετρο.

  • Τα δεδομένα κωδικοποίησης, οι πληροφορίες τύπου χαρακτήρων και οι πίνακες μεταγραφής έχουν ενημερωθεί για να υποστηρίζουν την προδιαγραφή Unicode 12.1.0.
  • Οι λειτουργίες clock_gettime, clock_getres, clock_settime, clock_getcpuclockid και clock_nanosleep δεν παρέχονται πλέον στη βιβλιοθήκη librt για νέες εφαρμογές και οι ορισμοί libc χρησιμοποιούνται αυτόματα.
  • Το /etc/resolv.conf έχει καταργήσει την επιλογή "inet6". Καταργήθηκαν οι παρωχημένες σημαίες 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, το οποίο μπορεί να προκαλέσει την ανάγνωση δεδομένων από ένα buffer εκτός ορίων κατά την επεξεργασία ορισμένων κανονικών εκφράσεων.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο