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

Крыніца: opennet.ru

Дадаць каментар