După doi ani de dezvoltare, a fost lansată versiunea standard a bibliotecii C Musl 1.2.6, care oferă o implementare libc adecvată pentru utilizare pe PC-uri desktop și servere, dar și pe sisteme mobile, combinând o susținere completă a standardelor (la fel ca Glibc) cu o dimensiune redusă, consum scăzut de resurse și performanță ridicată (la fel ca uClibc, dietlibc și Android Bionic). Este suportat toate interfețele obligatorii C99 și POSIX 2008, precum și parțial C11 și un set de extensii pentru programarea multi-thread (POSIX threads), gestionarea memoriei și lucrul cu locale. Codul Musl este furnizat sub licența liberă MIT.
Modificări principale:
- A fost implementată funcția posix_getdents, care a apărut în standardul POSIX-2024. Funcția citește conținutul directorului asociat cu un descriptor de fișier deschis și plasează informațiile despre subdirectoare și fișiere în structuri posix_dent cu posibilitatea de a limita dimensiunea maximă.
- A fost adăugată funcția specifică Linux renameat2, care oferă mijloace pentru înlocuirea atomică a numelui a două fișiere (primul fișier este redenumit în al doilea, iar al doilea în primul). Funcția nouă se deosebește de renameat prin existența unui câmp suplimentar de flag — fără activarea acestui flag, comportamentul renameat2 este complet analog cu renameat, iar în cazul specificării flag-ului RENAME_NOREPLACE, operațiunea de redenumire nu duce la înlocuirea unui fișier deja existent.
- Pentru sistemele Loongarch64 a fost adăugat suportul pentru mecanismul TLSDESC (Thread-Local Storage Descriptor) pentru acces eficient la variabile în stocarea locală a firului.
- Prin intermediul vDSO a fost optimizată funcția clock_gettime pe arhitecturile riscv32, riscv64, powerpc, powerpc64 și s390x. vDSO (virtual dynamic shared object) permite mutarea handler-ului de apel de sistem din nucleu în spațiul utilizatorului și evitarea schimbărilor de context.
- Pentru a determina capabilitățile CPU în timpul execuției compilatoarelor, simbolul __getauxval a fost tradus în ABI public.
- A fost eliminată vulnerabilitatea (CVE-2025-26519), care provoca o depășire a buffer-ului în timpul conversiei unui text special format din codificarea EUC-KR în UTF-8 folosind funcția iconv(). Vulnerabilitatea a fost identificată cu mai bine de un an în urmă și a fost remediată înainte de lansare prin instalarea unui patch.
- A fost rezolvată problema de compatibilitate în funcțiile initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt și vdso, precum și în fișierele header sched.h și shadow.h.
- A fost îmbunătățită conformitatea cu specificațiile în funcțiile pwrite (problemă rezolvată cu O_APPEND), mbnrtowcs (au fost luate în considerare cerințele POSIX-2024), strptim (au fost luate în considerare cerințele POSIX-2024e), inet_ntop (asigurând conformitatea cu RFC 5952).
Sursa: opennet.ro
