Después de seis meses de desarrollo lanzamiento de la biblioteca del sistema (glibc) , 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 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 en la implementación de la función memcmp para 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 , 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.
Fuente: opennet.ru
