Nach sechs Monaten Entwicklungszeit Release der Systembibliothek (glibc) , die vollstÀndig den Anforderungen der Standards ISO C11 und POSIX.1-2008 entspricht. In das neue Release wurden Korrekturen von 48 Entwicklern aufgenommen.
In Glibc 2.30 wurden umgesetzt gehören:
- Im dynamischen Linker wird die UnterstĂŒtzung der Option ââpreloadâ zur Vorabladung von gemeinsam genutzten Objekten (analog zur Umgebungsvariable LD_PRELOAD) bereitgestellt;
- Die Funktion twalk_r wurde hinzugefĂŒgt, die der bereits bestehenden Funktion twalk Ă€hnlich ist, jedoch die Ăbermittlung eines zusĂ€tzlichen Arguments an die angegebene Callback-Funktion ermöglicht;
- FĂŒr Linux wurden neue Funktionen getdents64, gettid und tgkill hinzugefĂŒgt;
- Die Funktionen zur Speicherverwaltung malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign und posix_memalign geben nun einen Fehlercode zurĂŒck, wenn die GesamtgröĂe des Objekts den Wert PTRDIFF_MAX ĂŒberschreitet. Diese Ănderung verhindert ein undefiniertes Verhalten, wenn das Ergebnis von Zeigeroperationen zu einem Ăberlauf des Typs ptrdiff_t fĂŒhrt;
- Die in POSIX vorgeschlagenen Funktionen pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock und sem_clockwait wurden hinzugefĂŒgt, die den âtimedâ-Ăquivalenten Ă€hnlich sind, jedoch zusĂ€tzlich den Parameter clockid_t zur Auswahl des Timers erhalten; - Die Daten zu Kodierungen, Informationen ĂŒber Zeichentypen und Transliterationstabellen wurden aktualisiert, um die Spezifikation Unicode 12.1.0 zu unterstĂŒtzen;
- In der Bibliothek librt werden fĂŒr neue Anwendungen keine Funktionen clock_gettime, clock_getres, clock_settime, clock_getcpuclockid und clock_nanosleep mehr bereitgestellt, stattdessen werden automatisch die Definitionen in libc verwendet;
- In /etc/resolv.conf wird die UnterstĂŒtzung fĂŒr die Option âinet6â eingestellt. Veraltete Flags RES_USE_INET6, RES_INSECURE1 und RES_INSECURE2 wurden aus resolv.h entfernt;
- Mit der Angabe der Option ââenable-bind-nowâ werden installierte Programme jetzt mit dem Flag BIND_NOW verknĂŒpft;
- Die fĂŒr Linux spezifische Header-Datei sys/sysctl.h und die Funktion sysctl wurden als veraltet erklĂ€rt, stattdessen sollten Anwendungen das Pseudodateisystem /proc verwenden;
- FĂŒr den Build von Glibc wird nun GCC 6.2 oder eine neuere Version benötigt (fĂŒr den Build von Anwendungen können beliebige Compiler verwendet werden);
- SicherheitsanfĂ€lligkeit beseitigt in der Implementierung der Funktion memcmp fĂŒr Subarchitektur x32 (nicht zu verwechseln mit x86 IA-32), weshalb die Funktion möglicherweise inkorrekt den Wert 0 fĂŒr nicht ĂŒbereinstimmende Strings zurĂŒckgab;
- SicherheitsanfĂ€lligkeit beseitigt , was dazu fĂŒhren kann, dass Daten aus dem Speicherbereich auĂerhalb der Buffergrenzen gelesen werden, wenn bestimmte regulĂ€re AusdrĂŒcke verarbeitet werden.
Quelle: opennet.ru
