Pas gjashtë muajsh zhvillimi, u publikua lëshimi i bibliotekës sistemore GNU C Library (glibc) 2.35, e cila plotëson plotësisht kërkesat e standardeve ISO C11 dhe POSIX.1-2017. Në këtë lëshim janë përfshirë rregullime nga 66 zhvillues.
Nga përmirësimet e realizuara në Glibc 2.35, mund të theksohen:
- U shtua mbĂ«shtetje pĂ«r lokalizimin «C.UTF-8», i cili pĂ«rfshin rregullat e rendit pĂ«r tĂ« gjitha kodet Unicode, por pĂ«r tĂ« kursyer hapĂ«sirĂ«, Ă«shtĂ« i kufizuar nĂ« pĂ«rdorimin e ĐŽĐžĐ°ĐżĐ°Đ·ĐŸĐœĐ”ve ASCII nĂ« funksionet fnmatch, regexec dhe regcomp. Lokalit zĂ« rreth 400 KB, nga tĂ« cilat 346 KB janĂ« tĂ« dhĂ«nat LC_CTYPE pĂ«r Unicode, dhe kĂ«rkon instalim tĂ« veçantĂ« (nuk Ă«shtĂ« e ndĂ«rtuar brenda Glibc).
- Të dhënat e kodimeve, informacioni mbi llojet e simboleve dhe tabelat e transliterimit janë përditësuar për të mbështetur specifikimin Unicode 14.0.0.
- NĂ«
- NĂ«
- NĂ«
- Për funksionet exp10, në headerin janë shtuar makro përkatëse, të cilat nuk janë të lidhura me tipe të caktuara.
- Në është shtuar makro _PRINTF_NAN_LEN_MAX, e propozuar në draftin e standardit ISO C2X.
- Në funksionet e familjes printf janë shtuar specifikatorët e formatit «%b» dhe «%B» për shfaqjen e numrave të tërë në përfaqësimin binar.
- Në sistemin e lidhjes dinamike është realizuar një algoritëm i ri i renditjes DSO, që përdor metodën e kërkimit në thellësi (DFS) për të zgjidhur problemet me performancën gjatë trajtimit të varësive të cikluara. Për të zgjedhur algoritmin e renditjes DSO, është propozuar parametrin glibc.rtld.dynamic_sort, të cilit mund t'i jepet vlera «1» për të rikthyer algoritmin e vjetër.
- Në ABI është shtuar mbështetje për funksionin e ri '__memcmpeq', i cili përdoret nga kompilatorët për optimizimin e përdorimit të 'memcmp', në rast se vlera e kthyer nga ky funksion përdoret vetëm për të verifikuar statusin e përfundimit të operacionit.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r regjistrimin automatik tĂ« flukseve, duke pĂ«rdorur thirrjen sistemike rseq (sekuenca tĂ« rifillueshme) qĂ« ofrohet qĂ« nga bĂ«rthama Linux 4.18. Thirrja sistemike rseq lejon organizimin e ekzekutimit tĂ« pandĂ«rprerĂ« tĂ« njĂ« grupi instruktoresh, tĂ« cilat nuk ndĂ«rpriten dhe konfirmojnĂ« rezultatin e instrukcioneve tĂ« fundit nĂ« grup. NĂ« thelb, ofrohet njĂ« mjet pĂ«r ekzekutimin shumĂ« tĂ« shpejtĂ« tĂ« operacioneve, tĂ« cilat nĂ« rast ndĂ«rprerje nga njĂ« fluks tjetĂ«r pastrohen dhe pĂ«rpilohet njĂ« pĂ«rpjekje e re pĂ«r ekzekutimin.
- ĂshtĂ« shtuar njĂ« lidhje simbolike /usr/bin/ld.so.
- ĂshtĂ« siguruar qĂ« ndĂ«rtimi i tĂ« gjitha skedarĂ«ve ekzekutivĂ« tĂ« programeve tĂ« ndĂ«rtuara dhe setit tĂ« testeve tĂ« bĂ«het nĂ« modin PIE (ekzekutiv i pavarur nga pozita). PĂ«r tĂ« çaktivizuar kĂ«tĂ« sjellje, Ă«shtĂ« parashikuar opsioni ââdisable-default-pieâ.
- Për Linux është shtuar konfigurimi glibc.malloc.hugetlb, i cili lejon kalimin e implementimit të malloc në përdorimin e thirrjes sistemike madvise me flamurin MADV_HUGEPAGE për mmap dhe sbrk ose përdorimin e drejtpërdrejtë të faqeve të mëdha të memories përmes nënshkrimit të flamurit MAP_HUGETLB në thirrjet mmap. Në rastin e parë mund të arrihet një rritje e performancës, nëse Faqet e Mëdha Transparente përdoren në modin madvise, ndërsa në rastin e dytë ofrohet mundësia e përdorimit të faqeve të mëdha të rezervuara nga sistemi (Huge Pages).
- ĂshtĂ« shtuar funksioni _dl_find_object, i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« shtuar informacion rreth pĂ«rmbysjes sĂ« stack-ut tĂ« thirrjeve (unwind).
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r arkitekturĂ«n OpenRISC (or1k-linux-gnu) nĂ« modin e pĂ«rpunimit tĂ« operacioneve me pikĂ« tĂ« lundrueshme (soft-float). PĂ«r funksionimin e portit janĂ« tĂ« nevojshme binutils 2.35, GCC 11 dhe bĂ«rthama Linux 5.4.
- ĂshtĂ« shtuar flamuri i ndĂ«rtimit ââwith-rtld-early-cflagsâ, me tĂ« cilin mund tĂ« tregoni flamuj tĂ« tjerĂ« tĂ« kompilimit qĂ« pĂ«rdoren gjatĂ« ndĂ«rtimit tĂ« kodit fillestar pĂ«r lidhjen dinamike.
- Për platformën Linux është shtuar funksioni epoll_pwait2, i cili ndryshon nga epoll_wait duke specifikuar një kohë të largët me saktësi në nanosekonda.
- ĂshtĂ« shtuar funksioni posix_spawn_file_actions_addtcsetpgrp_np, i cili pĂ«rjashton gjendjet e garĂ«s gjatĂ« vendosjes sĂ« terminalit tĂ« menaxhimit pĂ«r procesin e ri.
- Për aplikacionet e kompiluar me Glibc dhe GCC 12+, është krijuar mënyra e mbrojtjes "_FORTIFY_SOURCE=3", e cila identifikon potencialet e mbushjes së tamponit gjatë ekzekutimit të funksioneve të vargut të përcaktuara në header-in string.h. Dallimi nga modalità "_FORTIFY_SOURCE=2" qëndron në kontrollet e shtesë, të cilat mund të çojnë në një rënie të performancës.
- Përkrahja për zgjerimet Intel MPX (Memory Protection Extensions), të cilat përdoren për të verifikuar treguesit për respektimin e kufijve të hapësirave të memories, është ndërprerë (kjo teknologji nuk u përhap dhe është hequr nga GCC dhe LLVM).
- Mekanizmi prelink dhe variablat e lidhura mjedisore LD_TRACE_PRELINKING dhe LD_USE_LOAD_BIAS shpallen të vjetra dhe do të hiqen në edicionin e ardhshëm.
Janë eliminuar vulnerabilitetet:
- CVE-2022-23218, CVE-2022-23219 â mbushje tamponi nĂ« funksionet svcunix_create dhe clnt_create, e shkaktuar nga kopjimi nĂ« stack i pĂ«rmbajtjes tĂ« parametrave me emrin e skedarit pa kontrollin e madhĂ«sisĂ« sĂ« tĂ« dhĂ«nave tĂ« kopjuara. PĂ«r aplikacionet e ndĂ«rtuara pa mbrojtje tĂ« stack-ut dhe qĂ« pĂ«rdorin protokollin "unix", kĂ«rcĂ«nimi mund tĂ« çojĂ« nĂ« ekzekutimin e kodit tĂ« autorĂ«ve tĂ« keq nĂ« pĂ«rpunimin e emrave shumĂ« tĂ« gjatĂ« tĂ« skedarĂ«ve.
- CVE-2021-3998 â njĂ« dobĂ«si nĂ« funksionin realpath(), e shkaktuar nga kthimi nĂ« kushte tĂ« caktuara tĂ« njĂ« vlerĂ« tĂ« pasaktĂ«, qĂ« pĂ«rmban tĂ« dhĂ«na tĂ« mbetura tĂ« pastruar nga stack-u. PĂ«r programin SUID-root fusermount, mund tĂ« pĂ«rdoret kjo dobĂ«si pĂ«r tĂ« marrĂ« informacione tĂ« ndjeshme nga memoria e procesit, pĂ«r shembull, informacione mbi treguesit.
- CVE-2021-3999 â mbushje njĂ«-byte e tamponit nĂ« funksionin getcwd(). Problemi Ă«shtĂ« shkaktuar nga njĂ« gabim qĂ« Ă«shtĂ« i pranishĂ«m qĂ« prej vitit 1995. Mjafton tĂ« bĂ«het njĂ« thirrje chdir() pĂ«r katalogun "/" nĂ« njĂ« hapĂ«sirĂ« emĂ«rtimi tĂ« montimĂ«ve pĂ«r tĂ« shkaktuar mbushjen.
Burimi: opennet.ru
