Nach sechs Monaten Entwicklungszeit veröffentlicht Veröffentlichung der Systembibliothek GNU C-Bibliothek (glibc) 2.30, das vollständig den Anforderungen der Standards ISO C11 und POSIX.1-2008 entspricht. Die neue Version enthält Korrekturen von 48 Entwicklern.
Von den in Glibc 2.30 implementierten Verbesserungen Sie können feststellen:
Der dynamische Linker bietet Unterstützung für die Option „--preload“ zum Vorladen gemeinsam genutzter Objekte (analog zur Umgebungsvariablen LD_PRELOAD);
twalk_r-Funktion hinzugefügt, ähnlich der bereits vorhandenen twalk-Funktion, ermöglicht Ihnen jedoch die Übergabe eines zusätzlichen Arguments an eine bestimmte Rückruffunktion;
Für Linux wurden neue Funktionen getdents64, gettid und tgkill hinzugefügt;
Stellen Sie sicher, dass die Speicherverwaltungsfunktionen malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign und posix_memalign mit einem Fehlercode beendet werden, wenn die Gesamtobjektgröße den PTRDIFF_MAX-Wert überschreitet. Diese Änderung vermeidet undefiniertes Verhalten, wenn das Ergebnis der Zeigermanipulation zu einem Überlauf des Typs ptrdiff_t führt;
POSIX-Funktionen pthread_cond_clockwait, pthread_mutex_clocklock, hinzugefügt
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock und sem_clockwait, ähnlich den „timed“-Äquivalenten, akzeptieren aber zusätzlich einen Clockid_t-Parameter zur Auswahl des Timers;
Kodierungsdaten, Zeichentypinformationen und Transliterationstabellen wurden aktualisiert, um die Unicode 12.1.0-Spezifikation zu unterstützen;
Die librt-Bibliothek stellt die Funktionen „clock_gettime“, „clock_getres“, „clock_settime“, „clock_getcpuclockid“ und „clock_nanosleep“ nicht mehr für neue Anwendungen bereit, sondern verwendet stattdessen automatisch die Definitionen in libc;
Die Option „inet6“ wurde aus /etc/resolv.conf entfernt. Veraltete Flags RES_USE_INET6, RES_INSECURE1 und RES_INSECURE2 aus resolv.h entfernt;
Bei Angabe der Option „--enable-bind-now“ werden installierte Programme jetzt mit dem Flag BIND_NOW gebunden;
Die Linux-spezifische Headerdatei sys/sysctl.h und die Funktion sysctl sind veraltet und Anwendungen sollten stattdessen das Pseudo-FS /proc verwenden.
Für die Erstellung von Glibc ist jetzt GCC 6.2 oder neuer erforderlich (jeder Compiler kann zum Erstellen von Anwendungen verwendet werden);
Sicherheitslücke behoben CVE-2019-7309 bei der Implementierung der Memcmp-Funktion für veraltet x32-Subarchitektur (nicht zu verwechseln mit x86 IA-32), wodurch die Funktion fälschlicherweise den Wert 0 für nicht übereinstimmende Zeichenfolgen zurückgeben könnte;
Sicherheitslücke behoben CVE-2019-9169, was dazu führen kann, dass bei der Verarbeitung bestimmter regulärer Ausdrücke Daten aus einem Bereich außerhalb der Puffergrenzen gelesen werden.