Después de seis meses de desarrollo publicado lanzamiento de la biblioteca del sistema Biblioteca GNU C (glibc) 2.30, que cumple plenamente con los requisitos de las normas ISO C11 y POSIX.1-2008. La nueva versión incluye correcciones de 48 desarrolladores.
De los implementados en Glibc 2.30 mejoras puedes notar:
El vinculador dinámico brinda soporte para la opción “--preload” para precargar objetos compartidos (análoga a la variable de entorno LD_PRELOAD);
Se agregó la función twalk_r, similar a la función twalk ya existente, pero que le permite pasar un argumento adicional a una función de devolución de llamada determinada;
Se han agregado nuevas funciones getdents64, gettid y tgkill para Linux;
Asegúrese de que las funciones de administración de memoria malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign y posix_memalign salgan con un código de error cuando el tamaño total del objeto exceda el valor PTRDIFF_MAX. Este cambio evita un comportamiento indefinido cuando el resultado de la manipulación del puntero produce un desbordamiento del tipo ptrdiff_t;
Se agregaron funciones POSIX pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock y sem_clockwait, similares a los equivalentes "cronometrados", pero además aceptan un parámetro clockid_t para seleccionar el temporizador;
Los datos de codificación, la información del tipo de caracteres y las tablas de transliteración se actualizaron para admitir la especificación Unicode 12.1.0;
La biblioteca librt ya no proporciona las funciones clock_gettime, clock_getres, clock_settime, clock_getcpuclockid y clock_nanosleep para nuevas aplicaciones, sino que utiliza automáticamente las definiciones en libc;
La opción "inet6" se eliminó de /etc/resolv.conf. Se eliminaron las banderas obsoletas RES_USE_INET6, RES_INSECURE1 y RES_INSECURE2 de resolv.h;
Al especificar la opción "--enable-bind-now", los programas instalados ahora se vinculan utilizando el indicador BIND_NOW;
El archivo de encabezado sys/sysctl.h específico de Linux y la función sysctl han quedado obsoletos y las aplicaciones deberían usar el pseudo-FS /proc en su lugar;
La creación de Glibc ahora requiere GCC 6.2 o posterior (se puede utilizar cualquier compilador para crear aplicaciones);
Vulnerabilidad arreglada CVE-2019-7309 en la implementación de la función memcmp para obsoleto subarquitectura x32 (que no debe confundirse con x86 IA-32), como resultado de lo cual la función podría devolver incorrectamente el valor 0 para cadenas que no coinciden;
Vulnerabilidad arreglada CVE-2019-9169, lo que puede provocar que se lean datos desde un área fuera de los límites del búfer cuando se procesan ciertas expresiones regulares.