Veröffentlichung der Standard-C-Bibliothek Musl 1.2.6

Nach zwei Jahren Entwicklung wurde die Standard-C-Bibliothek Musl 1.2.6 veröffentlicht. Diese bietet eine libc-Implementierung, die sowohl für stationäre PCs und Server als auch für mobile Systeme geeignet ist. Sie kombiniert umfassende Unterstützung für Standards (wie bei Glibc) mit einer geringen Größe, niedrigem Ressourcenverbrauch und hoher Leistung (vergleichbar mit uClibc, dietlibc und Android Bionic). Unterstützt werden alle erforderlichen Schnittstellen von C99 und POSIX 2008 sowie teilweise C11 und eine Reihe von Erweiterungen für Multithreading (POSIX-Threads), Speicherverwaltung und Locale-Management. Der Musl-Code wird unter der MIT-Lizenz bereitgestellt.

Wesentliche Änderungen:

  • Die Funktion posix_getdents, die im Standard POSIX-2024 eingeführt wurde, wurde implementiert. Diese Funktion liest den Inhalt eines Verzeichnisses, das mit einem offenen Dateideskriptor verknüpft ist, und speichert Informationen über Unterverzeichnisse und Dateien in posix_dent-Strukturen, wobei eine Grenze für die maximale Größe gesetzt werden kann.
  • Eine für Linux spezifische Funktion renameat2 wurde hinzugefügt, die die Möglichkeit bietet, die Namen von zwei Dateien atomar zu ersetzen (die erste Datei wird in die zweite umbenannt, und die zweite in die erste). Im Gegensatz zu renameat bietet die neue Funktion ein zusätzliches Flag-Feld – ohne Setzen des Flags verhält sich renameat2 vollständig analog zu renameat, und bei Angabe des Flags RENAME_NOREPLACE führt der Umbenennungsprozess nicht zur Ersetzung einer bereits vorhandenen Datei.
  • Für Loongarch64-Systeme wurde die Unterstützung für den TLSDESC-Mechanismus (Thread-Local Storage Descriptor) hinzugefügt, um einen effizienten Zugriff auf Variablen im lokalen Thread-Speicher zu ermöglichen.
  • Durch vDSO wurde die Funktion clock_gettime auf den Architekturen riscv32, riscv64, powerpc, powerpc64 und s390x optimiert. vDSO (virtuelles dynamisches Shared Object) ermöglicht es, den Systemaufruf-Handler aus dem Kernel in den Nutzerspeicher zu verschieben und so Kontextwechsel zu vermeiden.
  • Zur Bestimmung der CPU-Funktionen zur Laufzeit von Compilern wurde das Symbol __getauxval in die öffentliche ABI übertragen.
  • Eine Schwachstelle (CVE-2025-26519) wurde behoben, die zu einem Pufferüberlauf beim Konvertieren von speziell formatiertem Text von EUC-KR nach UTF-8 mit der Funktion iconv() führte. Die Schwachstelle wurde vor über einem Jahr entdeckt und bis zur Veröffentlichung durch das Einspielen eines Patches behoben.
  • Kompatibilitätsprobleme in den Funktionen initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt sowie in den Header-Dateien sched.h und shadow.h wurden gelöst.
  • Die Konformität der Funktionen pwrite (Problem mit O_APPEND behoben), mbnrtowcs (Anforderungen von POSIX-2024 berücksichtigt), strptim (Anforderungen von POSIX-2024e berücksichtigt) und inet_ntop (Übereinstimmung mit RFC 5952 sichergestellt) wurde verbessert.

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster