PĂ€rast kuue kuu arengut on vĂ€lja antud sĂŒsteemi teegi GNU C Library (glibc) 2.35 versioon, mis vastab tĂ€ielikult ISO C11 ja POSIX.1-2017 standardite nĂ”uetele. Uue versiooni koosseisu kuuluvad parandused 66 arendajalt.
Glibc 2.35 rakendatud tÀiustustest vÔib vÀlja tuua:
- On lisatud tugi locale-le "C.UTF-8", mis hÔlmab sortimise reegleid kÔikide Unicode-koodide jaoks, kuid ruumi kokkuhoiuks on piiratud ASCII-vahemike kasutamisega funktsioonides fnmatch, regexec ja regcomp. Locale'i suurus on umbes 400 KB, millest 346 KB moodustavad LC_CTYPE andmed Unicode'i jaoks, ning see nÔuab eraldi installimist (ei ole glibci sisse ehitatud).
- Koodide andmed, teave sĂŒmbolite tĂŒĂŒpide ja translitereerimisdiagrammide kohta on uuendatud, et toetada Unicode'i spetsifikatsiooni versiooni 14.0.0.
- Failides
- Failides
- Failis
- Funktsioonide exp10 jaoks on failis lisatud vastavad makrod, mis ei ole seotud konkreetsete tĂŒĂŒpidega.
- Failis on lisatud makro _PRINTF_NAN_LEN_MAX, mis on soovitatud ISO C2X standardi mustandis.
- printf funktsioonide perekonda on lisatud vorminguspetsiifikaatorid "%b" ja "%B", et kuvada tÀisarve binaarses vormis.
- DĂŒnaamilise sidumise sĂŒsteemis on rakendatud uus DSO sortimisalgoritm, mis kasutab sĂŒgavuse otsingu (DFS) meetodit, et lahendada jĂ”udlusprobleemid tsĂŒkliliste sĂ”ltuvuste töötlemisel. DSO sortimisalgoritmi valimiseks on saadaval parameeter glibc.rtld.dynamic_sort, millele saab mÀÀrata vÀÀrtuse "1", et tagasipöörduda vana algoritmi juurde.
- ABI-sse on lisatud tugi uuele funktsioonile â__memcmpeqâ, mida kompilaatorid kasutavad âmemcmpâ optimeerimiseks, juhul kui selle funktsiooni tagastatud vÀÀrtust kasutatakse ainult operatsiooni lĂ”ppstaatus kontrollimiseks.
- Lisatud automaatse allokaatori toa toetamine, kasutades sĂŒsteemikĂ”net rseq (taaskĂ€ivitatavad jĂ€rjestused), mis on saadaval alates Linuxi tuumast 4.18. SĂŒsteemikĂ”ne rseq vĂ”imaldab korraldada katkestustega mittekatkestavat kĂ€skude rĂŒhma tĂ€itmist, mis ei katkesta ja kinnitab tulemuse viimase kĂ€skluse rĂŒhmas. Sisuliselt pakutakse vĂ€ga kiire atomaarse toimingu tĂ€itmise vahendit, mis katkestamise korral tĂ”rjub ja proovib taaskĂ€ivitamist.
- Lisatud sĂŒmboolne link /usr/bin/ld.so.
- Kohandatud vaikimisi nii kĂ€ivitatavad failid sisseehitatud programmide ja testikomplekti kogumiseks, et neid koostada PIE (asendist sĂ”ltumatu kĂ€ivitatav) reĆŸiimis. Selle kĂ€itumise keelamiseks on saadaval valik ââdisable-default-pieâ.
- Linuxi jaoks on lisatud konfiguratsioon glibc.malloc.hugetlb, mis vĂ”imaldab vahetada malloc'i rakenduse madvise sĂŒsteemikĂ”ne kasutamise jaĐșажutades lippu MADV_HUGEPAGE mmap ja sbrk'ile vĂ”i kasutada otseselt suuri mĂ€lu lehti, mÀÀrates mmap'i kĂ”nedes MAP_HUGETLB lipu. Esimeses juhtumis saab saavutada jĂ”udluse paranemise, kui lĂ€bipaistvad suured lehed on madvise reĆŸiimis, teises aga on vĂ”imalus kasutada sĂŒsteemi reserveeritud suuri lehti (Huge Pages).
- Lisatud funktsioon _dl_find_object, mida saab kasutada kutsuva stacki info lisamiseks (unwind).
- Lisatud OpenRISC (or1k-linux-gnu) arhitektuuri tugi pehmete ujukite operatsioonide töötlemise reĆŸiimis. Pordi tööks on vajalik binutils 2.35, GCC 11 ja Linuxi tuum 5.4.
- Lisatud koostamislipik ââwith-rtld-early-cflagsâ, millega saab mÀÀrata tĂ€iendavad koostamislipud, mida kasutatakse dĂŒnaamilise sidumise algkoodi koostamisel.
- Linuxi platvormile on lisatud funktsioon epoll_pwait2, mis erineb epoll_wait'ist selle poolest, et see mÀÀrab ajaintervalli nanosekundilise tÀpsusega.
- Lisatud funktsioon posix_spawn_file_actions_addtcsetpgrp_np, mis vÀlistab vÔistlusseisundid uue protsessi juhtterminalis seadistamisel.
- Rakenduste jaoks, mis on kompileeritud Glibci ja GCC 12+ abil, on sisse lĂŒlitatud kaitsereĆŸiim â_FORTIFY_SOURCE=3â, mis tuvastab vĂ”imalikke puhverĂŒlekuulamisi stringi.h pealdefineeritud stringifunktsioonide tĂ€itmise ajal. Erinevus reĆŸiimist â_FORTIFY_SOURCE=2â tuleneb tĂ€iendavatest kontrollidest, mis vĂ”ivad potentsiaalselt vĂ€hendada jĂ”udlust.
- Peatatud on Intel MPX (Memory Protection Extensions) laienduste tugi, mida kasutati pointerite kontrollimiseks mÀlupiiride jÀrgimise osas (antud tehnoloogia ei leidnud laialdast kasutamist ning on juba GCC ja LLVM-st eemaldatud).
- EESmÀrk on vÀlja kuulutatud aegunuks ja see eemaldatakse jÀrgmises vÀljaandes, samuti seotud keskkonnamuutujad LD_TRACE_PRELINKING ja LD_USE_LOAD_BIAS.
Turbepuudused on kÔrvaldatud:
- CVE-2022-23218, CVE-2022-23219 â puhverĂŒlekuulamine funktsioonides svcunix_create ja clnt_create, mis on pĂ”hjustatud faili nime parameetri sisu kopeerimisest stacki ilma kopeeritavate andmete suuruse kontrollita. Rakenduste puhul, mis on ehitatud ilma stackikaitseta ja kasutavad âunixâ protokolli, vĂ”ivad need haavatavused vĂ”imaldada kurjategijal koodi tĂ€itmist, kui failide nimed on vĂ€ga pikad.
- CVE-2021-3998 â haavatavus funktsioonis realpath(), mille on pĂ”hjustanud teatud tingimustel vale vÀÀrtuse tagastamine, mis sisaldab vaheandmeid stackist. SUID-root programmi fusermount puhul vĂ”ib haavatavust kasutada konfidentsiaalsete andmete saamiseks protsessi mĂ€lust, nĂ€iteks pointerite teabe saamiseks.
- CVE-2021-3999 â ĂŒhe baitine puhverĂŒlekuulamine funktsioonis getcwd(). Probleem on tingitud veast, mis on olemas olnud alates 1995. aastast. Ăksikutes Mount Namespace'ides piisab, kui kutsuda chdir() vĂ€lja kaustas â/â, et provotseerida ĂŒlekulu.
Allikas: opennet.ru
