Efter to års udvikling præsenteres udgivelsen af standard C-biblioteket Musl 1.2.6, som leverer en libc-implementering, der er velegnet til brug både på stationære computere og servere samt på mobile systemer, og som kombinerer fuld support af standarderne (som i Glibc) med et lille størrelsesforhold, lavt ressourceforbrug og høj ydeevne (som i uClibc, dietlibc og Android Bionic). Der er support for alle obligatoriske grænseflader C99 og POSIX 2008 samt delvis støtte til C11 og et sæt udvidelser til multitrådet programmering (POSIX-tråde), hukommelsesstyring og arbejde med lokaliteter. Musl-koden leveres under den åbne MIT-licens.
Vigtige ændringer:
- Funktionen posix_getdents, som optræder i POSIX-2024-standarden, er implementeret. Funktionen læser indholdet af en mappe forbundet med en åben filbeskriver og placerer information om undermapper og filer i strukturerne posix_dent med mulighed for at begrænse den maksimale størrelse.
- En Linux-specifik funktion, renameat2, er tilføjet, som giver midler til atomart at ændre navne på to filer (den første fil omdøbes til den anden, og den anden til den første). I forhold til renameat adskiller den nye funktion sig ved at have et ekstra flagfelt - uden at sætte flaget er opførelsen af renameat2 fuldstændig parallelt med renameat, mens angivelse af flaget RENAME_NOREPLACE gør, at omdøbsoperationen ikke erstatter en allerede eksisterende fil.
- Understøttelse af mekanismen TLSDESC (Thread-Local Storage Descriptor) er tilføjet til Loongarch64-systemer for effektiv adgang til variabler i lokal trådopbevaring.
- Funktionen clock_gettime er optimeret ved hjælp af vDSO på arkitekturerne riscv32, riscv64, powerpc, powerpc64 og s390x. vDSO (virtual dynamic shared object) gør det muligt at flytte systemopkaldshåndtereren fra kernen til brugerens rum og undgå kontekstskift.
- For at bestemme CPU'ens muligheder ved runtime for kompilatorer er symbolet __getauxval blevet overført til offentlig ABI.
- Sårbarheden (CVE-2025-26519), der førte til buffer-overløb ved konvertering af specielt udformet tekst fra EUC-KR til UTF-8 ved hjælp af funktionen iconv(), er blevet udbedret. Sårbarheden blev opdaget for mere end et år siden og blev løst gennem installation af en patch inden udgivelsen.
- Problemer med kompatibilitet i funktionerne initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt og vdso samt i headerfilerne sched.h og shadow.h er blevet løst.
- Forbedret overholdelse af specifikationerne i funktionerne pwrite (løst problem med O_APPEND), mbnrtowcs (taget hensyn til POSIX-2024 krav), strptim (taget hensyn til POSIX-2024e krav), inet_ntop (sikret overensstemmelse med RFC 5952).
Kilde: opennet.ru
