Издание на стандартната C-библиотека Musl 1.2.6

След като преминаха две години разработки, бе представена версия 1.2.6 на стандартната C-библиотека Musl, предлагаща реализация на libc, която е подходяща както за настолни компютри и сървъри, така и за мобилни системи, съчетаваща пълна поддръжка на стандартите (както в Glibc) с малък размер, ниска консумация на ресурси и висока производителност (както в uClibc, dietlibc и Android Bionic). Налице е поддръжка на всички задължителни интерфейси C99 и POSIX 2008, както и частична поддръжка на C11 и набор от разширения за многопоточност (потока POSIX), управление на паметта и работа с локали. Кодът на Musl се предоставя под свободната лицензия MIT.

Основни промени:

  • Реализирана е функцията posix_getdents, включена в стандарта POSIX-2024. Функцията чете съдържанието на директория, свързана с отворен дескриптор на файл, и поставя информация за поддиректории и файлове в структури posix_dent с възможност за ограничаване на максималния размер.
  • Добавена е специфична за Linux функция renameat2, която предоставя средства за атомарна замяна на имената на два файла (първият файл се преименува на втория, а вторият на първия). Функцията renameat2 се отличава от renameat с наличието на допълнително флагово поле — при липса на флаг поведението на renameat2 е напълно аналогично на renameat, а при задаване на флага RENAME_NOREPLACE операцията по преименуване не води до замяна на вече съществуващ файл.
  • За системите Loongarch64 е добавена поддръжка на механизма TLSDESC (Thread-Local Storage Descriptor) за ефективен достъп до променливи в локалното хранилище на потока.
  • Чрез vDSO е оптимизирана работата на функцията clock_gettime на архитектурите riscv32, riscv64, powerpc, powerpc64 и s390x. vDSO (виртуален динамичен споделен обект) позволява прехвърлянето на обработчика на системен повик от ядрото в потребителското пространство и избягване на смяна на контекста.
  • За определяне на възможностите на CPU по време на работа на компилаторите, символът __getauxval е трансформиран в публичния ABI.
  • Устранена е уязвимостта (CVE-2025-26519), водеща до препълване на буфера при преобразуване на специално форматиран текст от кодировка EUC-KR в UTF-8 чрез функцията iconv(). Уязвимостта беше открита преди повече от година и преди релиза беше коригирана чрез инсталиране на пач.
  • Решени са проблеми с съвместимостта във функциите initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt и vdso, а също така в заглавните файлове sched.h и shadow.h.
  • Подобрено съответствието с описанията в функциите pwrite (проблемата с O_APPEND е разрешена), mbnrtowcs (изискванията на POSIX-2024 са взети под внимание), strptim (изискванията на POSIX-2024e са взети под внимание), inet_ntop (осигурено съответствие с RFC 5952).

Източник: opennet.ru

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