After six months of development release of the system library (glibc) , which fully complies with the requirements of the ISO C11 and POSIX.1-2008 standards. The new release includes fixes from 48 developers.
Implemented in Glibc 2.30 notable mentions include:
- The dynamic linker now supports the "—preload" option for preloading shared objects (similar to the LD_PRELOAD environment variable);
- A function twalk_r has been added, similar to the existing twalk function, but allowing an additional argument to be passed to the specified callback function;
- New functions getdents64, gettid, and tgkill have been added for Linux;
- Error codes for memory management functions malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign, and posix_memalign have been set to terminate when the total object size exceeds PTRDIFF_MAX. This change prevents undefined behavior when pointer manipulation results in an overflow of the ptrdiff_t type;
- POSIX-suggested functions pthread_cond_clockwait, pthread_mutex_clocklock,
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock, and sem_clockwait have been added, similar to the "timed" equivalents but additionally taking a clockid_t parameter to select the timer; - Encoding data, character type information, and transliteration tables have been updated to support Unicode specification 12.1.0;
- In the librt library, functions clock_gettime, clock_getres, clock_settime, clock_getcpuclockid, and clock_nanosleep are no longer provided for new applications; instead, definitions in libc are used automatically;
- Support for the "inet6" option has been removed from /etc/resolv.conf. Obsolete flags RES_USE_INET6, RES_INSECURE1, and RES_INSECURE2 have been removed from resolv.h;
- With the "—enable-bind-now" option, installed programs are now linked using the BIND_NOW flag;
- The Linux-specific header file sys/sysctl.h and the sysctl function have been deprecated, and applications should instead use the pseudo-filesystem /proc;
- Building Glibc now requires GCC version 6.2 or newer (any compiler can be used to build applications);
- Vulnerability fixed in the implementation of the memcmp function for subarchitecture x32 (not to be confused with x86 IA-32), which could cause the function to incorrectly return 0 for non-matching strings;
- Vulnerability fixed , which may lead to reading data from outside the buffer bounds when processing certain regular expressions.
Source: opennet.ru
