Após seis meses de desenvolvimento lançamento da biblioteca do sistema (glibc) , que atende totalmente aos padrões ISO C11 e POSIX.1-2008. A nova versão inclui correções de 48 desenvolvedores.
Implementado no Glibc 2.30 pode-se destacar:
- O linkador dinâmico agora suporta a opção "--preload" para pré-carregar objetos compartilhados (semelhante à variável de ambiente LD_PRELOAD);
- Adicionada a função twalk_r, semelhante à função twalk existente, mas permitindo passar um argumento adicional para a função de callback especificada;
- Novas funções getdents64, gettid e tgkill foram adicionadas ao Linux;
- Garantido que as funções de gerenciamento de memória malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign e posix_memalign retornem códigos de erro quando o tamanho total do objeto exceder o valor PTRDIFF_MAX. Essa mudança evita comportamento indefinido quando o resultado das manipulações de ponteiros resulta em overflow do tipo ptrdiff_t;
- Adicionadas funções sugeridas no POSIX pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock e sem_clockwait, semelhantes aos equivalentes "timed", mas que aceitam um parâmetro clockid_t para escolher o timer; - Dados de codificações, informações sobre tipos de caracteres e tabelas de transliteração atualizadas para suportar a especificação Unicode 12.1.0;
- Na biblioteca librt, funções como clock_gettime, clock_getres, clock_settime, clock_getcpuclockid e clock_nanosleep não são mais fornecidas para novas aplicações, sendo utilizados automaticamente os definições na libc;
- O suporte à opção "inet6" foi removido em /etc/resolv.conf. Flags obsoletas RES_USE_INET6, RES_INSECURE1 e RES_INSECURE2 foram removidas de resolv.h;
- Com a opção "--enable-bind-now" especificada, os programas instalados agora se vinculam usando a flag BIND_NOW;
- O cabeçalho específico do Linux sys/sysctl.h e a função sysctl foram declarados obsoletos, agora os aplicativos devem usar o pseudo-sistema de arquivos /proc;
- Agora é necessário GCC 6.2 ou uma versão mais recente para compilar o Glibc (qualquer compilador pode ser usado para compilar aplicativos);
- Corrigida vulnerabilidade na implementação da função memcmp para a subarquitetura x32 (não confundir com x86 IA-32), que pode fazer a função retornar incorretamente o valor 0 para strings que não coincidem;
- Corrigida vulnerabilidade , que pode levar à leitura de dados fora dos limites do buffer ao processar certas expressões regulares.
Fonte: opennet.ru
