Glibc 2.30 System Library -julkaisu

Kuuden kuukauden kehitystyön jälkeen julkaistu järjestelmäkirjaston julkaisu GNU C -kirjasto (glibc) 2.30, joka täyttää täysin ISO C11- ja POSIX.1-2008 -standardien vaatimukset. Uusi julkaisu sisältää korjauksia 48 kehittäjältä.

Glibc 2.30:ssa toteutetuista parannuksia voit huomata:

  • Dynaaminen linkki tukee "--preload"-vaihtoehtoa jaettujen objektien esilataamiseksi (analogisesti LD_PRELOAD-ympäristömuuttujan kanssa);
  • Lisätty twalk_r-funktio, joka on samanlainen kuin jo olemassa oleva twalk-funktio, mutta jonka avulla voit välittää lisäargumentin tiettyyn takaisinsoittotoimintoon;
  • Uusia toimintoja getdents64, gettid ja tgkill on lisätty Linuxille;
  • Varmista, että muistinhallintatoiminnot malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign ja posix_memalign poistuvat virhekoodilla, kun objektin kokonaiskoko ylittää PTRDIFF_MAX-arvon. Tämä muutos välttää määrittelemättömän toiminnan, kun osoittimen manipuloinnin tulos johtaa ptrdiff_t-tyypin ylivuotoon;
  • Lisätty POSIX-funktiot pthread_cond_clockwait, pthread_mutex_clocklock,
    pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock ja sem_clockwait, jotka ovat samanlaisia ​​kuin "ajastettu" vastineet, mutta hyväksyvät lisäksi clockid_t-parametrin ajastimen valitsemiseksi;

  • Koodaustiedot, merkkityyppitiedot ja translitterointitaulukot on päivitetty tukemaan Unicode 12.1.0 -spesifikaatiota.
  • Librt-kirjasto ei enää tarjoa funktioita clock_gettime, clock_getres, clock_settime, clock_getcpuclockid ja clock_nanosleep uusille sovelluksille, vaan käyttää sen sijaan automaattisesti libc:n määritelmiä;
  • Valinta "inet6" on poistettu tiedostosta /etc/resolv.conf. Vanhentuneet liput RES_USE_INET6, RES_INSECURE1 ja RES_INSECURE2 poistettu tiedostosta resolv.h;
  • Kun määritetään "--enable-bind-now"-vaihtoehto, asennetut ohjelmat sidotaan nyt BIND_NOW-lipulla.
  • Linux-kohtainen sys/sysctl.h-otsikkotiedosto ja sysctl-funktio on vanhentunut, ja sovellusten tulisi käyttää sen sijaan /proc pseudo-FS:ää.
  • Glibcin rakentaminen vaatii nyt GCC 6.2:n tai uudemman (mitä tahansa kääntäjää voidaan käyttää sovellusten rakentamiseen);
  • Haavoittuvuus korjattu CVE-2019-7309 memcmp-funktion toteutuksessa vanhentunut x32-aliarkkitehtuuri (ei pidä sekoittaa x86 IA-32:een), jonka seurauksena funktio voi palauttaa virheellisesti arvon 0 yhteensopimattomille merkkijonoille;
  • Haavoittuvuus korjattu CVE-2019-9169, joka voi aiheuttaa tietojen lukemisen puskurin rajojen ulkopuolelta, kun tiettyjä säännöllisiä lausekkeita käsitellään.

Lähde: opennet.ru

Lisää kommentti