Release der Systembibliothek Glibc 2.30

Nach sechs Monaten Entwicklungszeit veröffentlicht Release der Systembibliothek GNU C Library (glibc) 2.30, 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 Verbesserungen 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 CVE-2019-7309 in der Implementierung der Funktion memcmp für veraltete 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 CVE-2019-9169, 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

60GB SSD 8Gb DDR4