Glibc 2.30 Systembibliotheksversion

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.

Source: opennet.ru

Kommentar hinzufügen