Lançamento da biblioteca padrão C Musl 1.2.6

Após dois anos de desenvolvimento, foi lançado o release da biblioteca padrão C Musl 1.2.6, que oferece uma implementação de libc adequada para uso em PCs e servidores estacionários, assim como em sistemas móveis, combinando suporte completo a padrões (como no Glibc) com um tamanho reduzido, baixo consumo de recursos e alta performance (como no uClibc, dietlibc e Android Bionic). Há suporte para todas as interfaces obrigatórias do C99 e POSIX 2008, além de suporte parcial ao C11 e um conjunto de extensões para programação multithread (POSIX threads), gerenciamento de memória e manipulação de locais. O código Musl é distribuído sob a licença livre MIT.

Principais mudanças:

  • Foi implementada a função posix_getdents, que apareceu no padrão POSIX-2024. A função lê o conteúdo do diretório associado ao descritor de arquivo aberto e coloca informações sobre subdiretórios e arquivos em estruturas posix_dent, com a possibilidade de restringir o tamanho máximo.
  • Adicionada a função específica do Linux renameat2, que fornece meios para a troca atômica de nomes de dois arquivos (um arquivo é renomeado para o nome do outro, e o segundo para o primeiro). A nova função differe da renameat pela presença de um campo de flag adicional — sem a flag, o comportamento do renameat2 é totalmente análogo ao do renameat, e ao especificar a flag RENAME_NOREPLACE, a operação de renomeação não resulta na substituição de um arquivo já existente.
  • Para sistemas Loongarch64, foi adicionado suporte ao mecanismo TLSDESC (Thread-Local Storage Descriptor) para acesso eficiente a variáveis no armazenamento local do thread.
  • A função clock_gettime foi otimizada em arquiteturas riscv32, riscv64, powerpc, powerpc64 e s390x através do vDSO. O vDSO (virtual dynamic shared object) permite mover o manipulador de chamadas do sistema do kernel para o espaço do usuário, evitando trocas de contexto.
  • Para determinar as capacidades da CPU em tempo de execução nos compiladores, o símbolo __getauxval foi transferido para o ABI público.
  • Uma vulnerabilidade (CVE-2025-26519) que poderia causar um estouro de buffer ao converter texto especialmente formatado da codificação EUC-KR para UTF-8 usando a função iconv() foi corrigida. A vulnerabilidade foi identificada há mais de um ano e foi abordada com a instalação de um patch antes do lançamento.
  • Problemas de compatibilidade foram resolvidos nas funções initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt e vdso, assim como em arquivos de cabeçalho sched.h e shadow.h.
  • Aprimorada a conformidade com as especificações nas funções pwrite (resolvido o problema com O_APPEND), mbnrtowcs (consideradas as exigências do POSIX-2024), strptim (consideradas as exigências do POSIX-2024e), inet_ntop (garantida a conformidade com o RFC 5952).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster