PĂ€rast kuue kuu arendustööd on avaldatud GNU C Library 2.42 (glibc) sĂŒsteemi teegi versioon, mis vastab tĂ€ielikult ISO C23 ja POSIX.1-2024 standardite nĂ”uetele. Uue vĂ€ljaande loomises osales 70 arendajat.
Glibc 2.42-s rakendatud tÀiustustest vÔib mÀrkida:
- pthread_create funktsiooni on lisatud toimetuse jaoks kergekaaluliste kaitselehtede tugi, mis kaitseb steki (stack guard page). Nendele viitamine kutsub esile erandi ja protsessi kokkuvarisemise (SIGSEGV). Realiseerimine pĂ”hineb sĂŒsteemikutses madvise ilmnenud lipul MADV_GUARD_INSTALL, mida toetatakse alates Linuxi tuumast 6.13. VĂ”rreldes PROT_NONE reĆŸiimis kaartimisega vĂ”imaldavad kaitselehed tĂ”husamalt blokeerida koodi tĂ€itmise mÀÀratud mĂ€lupiirkonna vĂ€liselt, kuna nende loomine ei nĂ”ua uue virtuaalmĂ€lu piirkonna eraldamist.
- Math.h pĂ€isefailis on lisatud ja peegeldatud uued eksponentfunktsioonid ja juuretehte funktsioonid compoundn, pown ja powr, rootn ja rsqrt, mis on mÀÀratletud ISO C23 standardis. Funktsioonide variandid on realiseeritud tĂŒĂŒpidele float, double, long double, _FloatN ja _FloatNx, samuti tgmath.h geneerilise tĂŒĂŒbi jaoks.
- Linuxi platvormil on realiseeritud pthread_gettid_np funktsioon, mis nagu gettid() funktsioon tagastab unikaalse thread'i identifikaatori, kuid erineb laiendatud vigade kontrollimisega (ebamugavuste ilmnemisel protsess lÔpetatakse).
- Lisatud on absoluutvÀÀrtuse arvutamise funktsioonid, mis töötavad ilma allkirjadeta tĂŒĂŒpidega: uabs, ulabs, ullabs ja uimaxabs. Need funktsioonid kuuluvad tulevasse C standardisse.
- Linuxi platvormil on termios.h programmiliideses realiseeritud toe suvaliste edastuskiirusvÀÀrtuste jaoks. TĂŒĂŒp speed_t on ĂŒmber defineeritud ja vastab nĂŒĂŒd tĂŒĂŒbi «unsigned int» mÀÀratlemisele, nagu Linuxi tuumas.
- Töötajate kohaliku mÀlukÀibe (tcache), mida kasutatakse malloc funktsioonis, on lisatud tugi suurte mÀluplokkide vahepealsesse mÀllu. Ploki maksimaalne suurus vÔib olla mÀÀratud konfiguratsiooni glibc.malloc.tcache_max kaudu, mille vÀÀrtus vÔib olla kuni 4194304. VÀikese suurusega plokkide vahepealse mÀluga on kiirus paranenud.
- Kogumisskripti konfigureerimiseks on lisatud valik «--enable-sframe», mis lubab SFrame formaadi toe, mida kasutatakse steki jÀlgimise teabe esitlemiseks ja mille toetab backtrace funktsioon. SFrame'i kasutamiseks on vajalik vÀhemalt binutils 2.45 versioon.
- CORE-MATH projekti raames on optimeeritud matemaatiliste funktsioonide versioonid acospif, asinpif, atanpif, atan2pif, cospif, sinpif ja tanpif ĂŒle viidud.
- Testkomplekti on oluliselt laiendatud, nĂŒĂŒd katab see erinevaid printf ja scanf funktsioonide perede variante.
- Lisatud on tugi Intel'i protsessoritele, mis pÔhinevad mikroarhitektuuridel Arrow Lake, Panther Lake, Clearwater Forest ja Diamond Rapids.
- Lisatud on toetus z17 platvormile (uue pÔlvkonna IBM Z/S390 peamised arvutid).
- glibc.rtld.execstack seadistusse on lisatud ĂŒhilduvusreĆŸiimi tugi rakendustele, mis vajavad dĂŒnaamiliselt laaditavate raamatukogude kaudu tĂ€itevakku.
- Pealkirja fail termio.h ja struktuuri termio definitsioon on eemaldatud sys/ioctl.h-st. Termio.h tarkvaraliides kuulutati vananenuks juba POSIX.1-s (1988. aasta) ja asendati termios.h-iga.
- Glibc koostamiseks on nĂŒĂŒd minimaalne nĂ”ue GCC 12.1 ja GNU Binutils 2.39 versioonid.
- Turbepuudused on kÔrvaldatud:
- CVE-2025-0395 â heap'i ĂŒlevool assert() funktsiooni tĂ€itmisel. Ălevool tekib liiga suure programmi nime (argv[0]) mÀÀramisel. Probleemi peetakse mitteohtlikuks, kuna mĂ€llu kirjutatakse 4 baiti, mille sisu ei saa rĂŒndaja kontrollida. Huvi pakub ka tĂ”siasi, et vigade tĂ”ttu ilmnes haavatavus silumisfunktsioonides, mis tulenes praeguse rakenduse nime vĂ€ljundist.
- CVE-2025-5702, CVE-2025-5745 â haavatavused strcmp ja strncmp funktsioonide rakendustes Power10 protsessoritele, mis pĂ”hjustavad vektorregisterite v20-v31 talletamise ja taastamise rikke, mis tuleb talletada funktsioonide vahel. Haavatavust saab kasutada registreeritud andmete sisu ĂŒlekirjutamiseks vĂ”i mÀÀramiseks, mida kasutab ridafunktsioon.
- CVE-2025-8058 â haavatavus regcomp funktsioonis, mis viib mĂ€lu kahekordse vabastamiseni (double-free).
Oluline on mainida ka GNU Binutils 2.45 sĂŒsteemsete utiliitide komplekti vĂ€ljalaskmist, kuhu kuuluvad sellised programmid nagu GNU linker, GNU assembler, nm, objdump, strings, strip.
Uues Binutils versioonis:
- GNU assembler'is:
- On lisatud tugi uusimatele laiendustele arhitektuuridele RISC-V, LoongArch ja AArch64. x86 jaoks on lisatud tugi XMODX kÀskudele, mis on rakendatud Zhaoxin PadLock protsessorites. RISC-V jaoks on lisatud tugi kÀskudele ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0, sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0, zilsd v1.0, zclsd v1.0, smrnmi v1.0, xtheadvdot v1.0, xmipscbop v1.0, xmipscmov v1.0, xmipsexectl v1.0 ja xmipslsp v1.0.
- Data generation compatibility with the SFrame format according to the SFrame V2 specification has been ensured. Support for generating stack trace information (.sframe) from CFI directives on 64-bit s390 (s390x) systems has been added.
- Support for the .errif and .warnif directives has been added to output diagnostic messages when certain conditions are met.
- In the linker, the "âstats" option now supports an optional argument that allows specifying a filename to save resource consumption information at different stages of linking. The filename can also be specified via the LD_STATS environment variable. For RISC-V systems, support for new PLT (Procedure Linkage Table) formats has been added to the linker.
- Various improvements related to SFrame format support have been made. Functions for working with SFrame have been moved to the versioned library libsframe.so.2.
- Support for the RISC-V architecture has been expanded in the disassembler and the readelf utility.
Allikas: opennet.ru
