Випуск системної бібліотеки Glibc 2.30

Після шести місяців розробки опубліковано реліз системної бібліотеки Бібліотека GNU C (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, замість яких додаткам слід використовувати псевдо-ФС /proc;
  • Для складання Glibc тепер потрібна GCC 6.2 або новіша версія (для складання додатків можуть використовуватися будь-які компілятори);
  • Усунена вразливість CVE-2019-7309 у реалізації функції memcmp для застарілою субархітектури x32 (не плутати з x86 IA-32), в результаті якої функція некоректно могла повертати значення 0 для рядків, що не збігаються;
  • Усунена вразливість CVE-2019-9169, яка може призвести до читання даних з області поза межами буфера під час обробки певних регулярних виразів.

Джерело: opennet.ru

Додати коментар або відгук