Vrystelling van die standaard C-biblioteke Glibc 2.43 en newlib 4.6.0

Na ses maande van ontwikkeling is die GNU C Library 2.43 (glibc) stelselbiblioteek vrygestel, wat volledig voldoen aan ISO C23 en POSIX.1-2024 standaarde. 69 ontwikkelaars het tot die nuwe vrystelling bygedra.

Sommige van die verbeterings wat in Glibc 2.43 geïmplementeer is, sluit in:

  • 'n Eksperimentele Clang-samestellerboufunksie is bygevoeg. Tans is dit slegs beskikbaar vir die aarch64-linux-gnu en x86_64-linux-gnu platforms wanneer 'n libgcc-versoenbare looptyd gebruik word. Die bou van Glibc vereis ten minste Clang weergawe 18.
  • Vir stelsels Linux Die mseal()-funksie is bygevoeg, wat prosesse toelaat om 'n slot te plaas op wysigings aan spesifieke dele van hul adresruimte.
  • Vir stelsels Linux Die openat2()-funksie is bygevoeg. Anders as die openat()-funksie, ondersteun dit 'n stel bykomende vlae vir die beperking van lêerpadresolusie (verbied die kruising van koppelpunte, simboliese skakels, magiese skakels (/proc/PID/fd), "../"-komponente).
  • Die free_sized, free_aligned_sized, memset_explicit, en memalignment funksies wat in die C23-standaard bekendgestel is, is bygevoeg.
  • Volgens die C23-standaard word die assert-oproep gedefinieer as 'n variadiese makro wat komma-uitdrukkings binne die inisialiseerder ondersteun.
  • In ooreenstemming met die C23-standaard word die funksies bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr, en wmemchr, wat wysers na invoerskikkings terugstuur, herdefinieer as makro's wat 'n wyser na 'n const-gekwalifiseerde tipe terugstuur as die invoerargument 'n wyser na 'n const-gekwalifiseerde tipe is.
  • Die math.h-koplêer is opgedateer om definisies van die long_double_t-, _Float32_t-, _Float64_t- en _Float128_t-tipes wat in die C23-standaard bekendgestel is, in te sluit.
  • Opsionele tydberekeningsmodusse TIME_MONOTONIC (tyd wat voortdurend toeneem, onafhanklik van veranderinge in die stelselklok), TIME_ACTIVE en TIME_THREAD_ACTIVE (die tyd van aktiewe uitvoering van 'n proses of draad) is bygevoeg vir gebruik in die timespec_get-funksie.
  • Geoptimaliseerde weergawes van die wiskundige funksies acosh, asinh, atanh, erf, erfc, lgamma en tgamma is oorgedra vanaf die CORE-MATH-projek.
  • Geoptimaliseerde implementerings van die funksies fma, fmaf, remainder, remainderef, frexpf, frexp, frexpl (binary128) en frexpl (intel96) is bygevoeg.
  • Verbeterde werkverrigting van die wiskundige funksies acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1, en yn/jn deur die SVID-fouthanteringskode (wat die gebruiker-gedefinieerde matherr-funksie by foute aanroep) vir nuwe boue te verwyder (om versoenbaarheid met bestaande programme te handhaaf, word hulle in versoenbaarheidsmodus gelaat).
  • Op x86-stelsels is ondersteuning vir Intel Nova Lake- en Wildcat Lake-verwerkers bygevoeg.
  • Op AArch64-stelsels is ondersteuning vir deursigtige groot bladsye (2MB) standaard geaktiveer in die malloc-funksie (die ibc.malloc.hugetlb-parameter is nou op 1 gestel). Die clone()-funksie deaktiveer nou die ZA (Z-Array)-toestand op SVE's wat die Scalable Matrix Extension (SME) ondersteun.
  • Vir AArch64-stelsels wat die Branch Target Identification (BTI)-uitbreiding ondersteun, is die glibc.cpu.aarch64_bti-instelling bygevoeg. Hierdie instelling laat die geforseerde aktivering van BTI toe vir alle uitvoerbare lêers en biblioteke. BTI blokkeer spring na arbitrêre kode-afdelings om die skep van toestelle in aanvalle wat terugkeer-georiënteerde programmeringstegnieke gebruik, te voorkom.
  • Op AArch64-stelsels wat een van die taksekuriteitsuitbreidings (Branch Target Identification of Guarded Control Stack) ondersteun, word die gebruik van die omgewingveranderlike "LD_DEBUG=security" toegelaat om die skakelaar waarskuwings te laat druk wanneer uitvoerbare lêers en biblioteke gelaai word wat nie hierdie uitbreidings ondersteun nie.
  • Vir AArch64-stelsels is vektorweergawes van die exp2m1-, exp10m1-, log10p1-, log2p1- en rsqrt-funksies bygevoeg.
  • Vir die RISC-V-argitektuur is 'n geoptimaliseerde implementering van die memset-funksie bygevoeg met behulp van die RVV (RISC-V Vector) uitbreiding.
  • Die toetssuite het sy toetsing van multithreading en die scanf-, strerror- en strsignal-funksies aansienlik uitgebrei.
  • Enkoderingsdata, karaktertipe-inligting en transliterasietabelle is opgedateer om die Unicode 17.0.0-spesifikasie te ondersteun.
  • Die LD_PROFILE implementering gebruik nie meer die standaardgids (/var/tmp) vir die skryf van profieldata nie. Die stoor van sulke data vereis nou dat 'n gids eksplisiet gedefinieer word met behulp van die LD_PROFILE_OUTPUT omgewing veranderlike.
  • Kwesbaarhede opgelos:
    • CVE-2026-0861 - 'n Heelgetal-oorloop in die memalign-funksie lei tot hoopkorrupsie.
    • CVE-2026-0915 – Stapellek in getnetbyaddr- en getnetbyaddr_r-funksies.
    • CVE-2025-15281 - Ongeïnisialiseerde geheueterugsending, wat oorblywende data kan bevat, wanneer die wordexp-funksie met die WRDE_REUSE- en WRDE_APPEND-parameters gebruik word.

Verder, na 'n jaar van ontwikkeling, het die Cygwin-projek weergawe 4.6.0 van die standaard C-biblioteek, newlib, vrygestel, wat deur ingenieurs by Red Hat ontwikkel is. Die biblioteek het ten doel om 'n kompakte implementering van die standaard C-biblioteek (libc) te bied, geskik vir gebruik op ingebedde stelsels met klein stoorplek en RAM-voetspore. Die projek se kode is in C geskryf en versprei onder die LGPLv2-lisensie.

In die nuwe weergawe van newlib:

  • Ondersteuning vir die POSIX.1-2024-spesifikasie is uitgebrei.
  • Verbeterde werkverrigting van die memcpy-, mempcpy- en memmove-funksies.
  • Opsie "--enable-newlib-hw-misaligned-access" is bygevoeg.
  • Die RISC-V-argitektuur van die mem*- en str*-reeksfunksies is geoptimaliseer.
  • Die lokaliteitshanteringskode is herwerk, wat die globale veranderlike global_locale_string uitgeskakel het ten gunste van aparte locale_string-veranderlikes vir elke lokaliteitsobjek van tipe locale_t.
  • Ondersteuning vir die nuwe m68k-atari-elf platform is bygevoeg.
  • Die strtorQ.c-kode is oorgedra vanaf die FreeBSD gdtoa-biblioteek, wat gebruik word om ondersteuning vir die 128-bis "long double"-tipe in die strtold-funksie te implementeer.
  • Enkoderingsdata is opgedateer na Unicode 17.0.

Bron: opennet.ru

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster