Пускането на системната библиотека Glibc 2.30

След шестмесечно разработване беше публикуван релиз на системната библиотека GNU C Library (glibc) 2.30, който напълно отговаря на изискванията на стандартите ISO C11 и POSIX.1-2008. В новата версия са включени поправки от 48 разработчици.

От реализираните в Glibc 2.30 подобрения може да се отбележи:

  • В динамичния линкер е добавена поддръжка на опцията «—preload» за предварително зареждане на споделени обекти (аналог на променливата на средата LD_PRELOAD);
  • Добавена е функцията twalk_r, подобна на вече съществуващата функция twalk, но позволяваща предаване на допълнителен аргумент на определената callback-функция;
  • За Linux са добавени нови функции getdents64, gettid и tgkill;
  • Обезпечено е завършване с код на грешка на функциите за управление на паметта malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign и posix_memalign, в ситуации, когато общият размер на обекта надвишава стойността PTRDIFF_MAX. Посоченото изменение позволява да се избегне неопределено поведение, когато резултатът от манипулацията с указатели доведе до преливане на типа ptrdiff_t;
  • Добавени са предложените в POSIX функции pthread_cond_clockwait, pthread_mutex_clocklock,
    pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock и sem_clockwait, подобни на еквивалентите «timed», но допълнително приемат параметър clockid_t за избор на таймер;
  • Данните за кодировките, информацията за типовете символи и таблиците за транслитерация са обновени за поддръжка на спецификацията Unicode 12.1.0;
  • В библиотеката librt за нови приложения вече не се предоставят функциите clock_gettime, clock_getres, clock_settime, clock_getcpuclockid и clock_nanosleep, вместо които автоматично се използват определения в libc;
  • В /etc/resolv.conf е прекратена поддръжката на опцията «inet6». От resolv.h са премахнати остарелите флагове RES_USE_INET6, RES_INSECURE1 и RES_INSECURE2;
  • При указване на опцията «—enable-bind-now» инсталираните програми сега се свързват, използвайки флага BIND_NOW;
  • Обявени са за остарели специфичните за Linux заглавен файл sys/sysctl.h и функцията sysctl, вместо които приложенията следва да използват pseudo-файловата система /proc;
  • За изграждането на Glibc сега е необходима GCC 6.2 или по-нова версия (за изграждане на приложения могат да се използват всякакви компилатори);
  • Отстранена уязвимост CVE-2019-7309 в реализацията на функцията memcmp за устаревшей субархитектура x32 (не бъркайте с x86 IA-32), в резултат на което функцията може неправилно да връща значение 0 за несъвпадащи низове;
  • Отстранена уязвимост CVE-2019-9169, което може да доведе до четене на данни от област извън границите на буфера при обработка на определени регулярни изрази.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster