Glibc 2.30 sistemos bibliotekos leidimas

Po šešių mėnesių vystymosi paskelbti sistemos bibliotekos leidimas GNU C biblioteka (glibc) 2.30, kuris visiškai atitinka ISO C11 ir POSIX.1-2008 standartų reikalavimus. Naujajame leidime yra 48 kūrėjų pataisymai.

Iš įdiegtų Glibc 2.30 patobulinimai galite atkreipti dėmesį:

  • Dinaminis saitas palaiko „--preload“ parinktį, skirtą iš anksto įkelti bendrinamus objektus (analogiškai LD_PRELOAD aplinkos kintamajam);
  • Pridėta funkcija twalk_r, panaši į jau esamą twalk funkciją, bet leidžianti perduoti papildomą argumentą nurodytai atgalinio skambinimo funkcijai;
  • Pridėtos naujos funkcijos getdents64, gettid ir tgkill, skirtos Linux;
  • Įsitikinkite, kad atminties valdymo funkcijos malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign ir posix_memalign išeina su klaidos kodu, kai bendras objekto dydis viršija PTRDIFF_MAX reikšmę. Šis pakeitimas leidžia išvengti neapibrėžto elgesio, kai manipuliuojant žymekliu atsiranda ptrdiff_t tipo perpildymas;
  • Pridėtos POSIX funkcijos pthread_cond_clockwait, pthread_mutex_clocklock,
    pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock ir sem_clockwait, panašiai kaip "laikinio" atitikmenys, tačiau papildomai priimamas clockid_t parametras, skirtas pasirinkti laikmatį;

  • Kodavimo duomenys, simbolių tipo informacija ir transliteracijos lentelės buvo atnaujintos, kad palaikytų Unicode 12.1.0 specifikaciją;
  • Librt biblioteka nebeteikia clock_gettime, clock_getres, clock_settime, clock_getcpuclockid ir clock_nanosleep funkcijų naujoms programoms, bet automatiškai naudoja libc apibrėžimus;
  • Parinktis "inet6" buvo pašalinta iš /etc/resolv.conf. Pašalintos pasenusios vėliavėlės RES_USE_INET6, RES_INSECURE1 ir RES_INSECURE2 iš resolv.h;
  • Nurodant parinktį "--enable-bind-now", įdiegtos programos dabar susiejamos naudojant BIND_NOW vėliavėlę;
  • „Linux“ specifinis sys/sysctl.h antraštės failas ir sysctl funkcija buvo nebenaudojami, o programos turėtų naudoti /proc pseudo-FS;
  • Kuriant Glibc dabar reikalinga GCC 6.2 arba naujesnė versija (programoms kurti galima naudoti bet kurį kompiliatorių);
  • Pažeidžiamumas ištaisytas CVE-2019-7309 įgyvendinant memcmp funkciją pasenusi x32 subarchitektūra (nepainioti su x86 IA-32), dėl kurios funkcija gali neteisingai grąžinti 0 reikšmę nesuderinamoms eilutėms;
  • Pažeidžiamumas ištaisytas CVE-2019-9169, dėl kurio duomenys gali būti nuskaitomi iš srities, esančios už buferio ribų, kai apdorojamos tam tikros reguliariosios išraiškos.

Šaltinis: opennet.ru

Добавить комментарий