PÄc seÅ”u mÄneÅ”u izstrÄdes ir izlaista GNU C Library (glibc) 2.34 sistÄmas bibliotÄka, kas pilnÄ«bÄ atbilst ISO C11 un POSIX.1-2017 standartu prasÄ«bÄm. JaunajÄ laidienÄ ir iekļauti 66 izstrÄdÄtÄju labojumi.
Daži no Glibc 2.34 ieviestajiem uzlabojumiem ietver:
- BibliotÄkas libpthread, libdl, libutil un libanl ir integrÄtas galvenajÄ libc struktÅ«rÄ, to funkcionalitÄtes izmantoÅ”anai lietojumprogrammÄs vairs nav nepiecieÅ”ama saite, izmantojot karogus -lpthread, -ldl, -lutil un -lanl. Ir veikti sagatavoÅ”anÄs darbi libresolv integrÄcijai libc. IntegrÄcija ļaus netraucÄtÄk veikt glibc atjauninÄÅ”anas procesu un vienkÄrÅ”os izpildlaika ievieÅ”anu. Stub bibliotÄkas tiek nodroÅ”inÄtas, lai nodroÅ”inÄtu atpakaļsaderÄ«bu ar lietojumprogrammÄm, kas izveidotas ar vecÄkÄm glibc versijÄm. SakarÄ ar glibc nodroÅ”inÄto struktÅ«ru un funkciju skaita palielinÄÅ”anos, var rasties problÄmas lietojumprogrammÄs, kurÄs nosaukumi krustojas ar iepriekÅ” neizmantotÄm bibliotÄkÄm libpthread, libdl, libutil, libresolv un libanl.
- NodroÅ”ina iespÄju izmantot 64 bitu time_t tipu konfigurÄcijÄs, kurÄs tradicionÄli tika izmantots 32 bitu time_t tips. Å ÄdÄs konfigurÄcijÄs, piemÄram, x86 sistÄmÄs, noklusÄjuma vÄrtÄ«ba joprojÄm ir 32 bitu time_t, taÄu Å”o darbÄ«bu tagad var mainÄ«t, izmantojot makro "_TIME_BITS". Å Ä« funkcija ir pieejama tikai sistÄmÄs ar vismaz Linux kodola versiju 5.1.
- Pievienota funkcija _Fork, dakÅ”as funkcijas aizstÄjÄjs, kas atbilst āasync-signal-safeā prasÄ«bÄm, t.i. ļauj droÅ”i izsaukt signÄlu apstrÄdÄtÄjus. _Fork izpildes laikÄ tiek izveidota minimÄla vide, kas ir pietiekama, lai izsauktu funkcijas signÄlu apstrÄdÄtÄjos, piemÄram, pacelÅ”ana un izpilde, neiesaistot lÄ«dzekļus, kas varÄtu mainÄ«t slÄdzenes vai iekÅ”Äjo stÄvokli. Izsaukums _Fork tiks definÄts nÄkamajÄ POSIX standarta versijÄ, bet pagaidÄm tas ir iekļauts kÄ GNU paplaÅ”inÄjums.
- Linux platformai ir ieviesta execveat funkcija, kas ļauj palaist izpildÄmo failu no atvÄrta faila deskriptora. JaunÄ funkcija tiek izmantota arÄ« fexecve izsaukuma ievieÅ”anÄ, kam startÄÅ”anas laikÄ nav nepiecieÅ”ams uzstÄdÄ«ts pseido-FS /proc.
- Pievienota timepec_getres funkcija, kas definÄta ISO C2X standarta projektÄ, kas paplaÅ”ina timepec_get funkciju ar iespÄjÄm, kas ir lÄ«dzÄ«gas funkcijai POSIX clock_getres.
- Pievienota funkcija close_range(), kas ļauj procesam vienlaikus aizvÄrt visu atvÄrto failu deskriptoru diapazonu. Funkcija ir pieejama sistÄmÄs, kuru Linux kodola versija ir vismaz 5.9.
- Pievienotas funkcijas closefrom un posix_spawn_file_actions_addclosefrom_np, kas ļauj uzreiz aizvÄrt visus failu deskriptorus, kuru skaits ir lielÄks vai vienÄds ar norÄdÄ«to vÄrtÄ«bu.
- Režīmos "_DYNAMIC_STACK_SIZE_SOURCE" un "_GNU_SOURCE" PTHREAD_STACK_MIN, MINSIGSTKSZ un SIGSTKSZ vairs nav konstantes, ļaujot atbalstÄ«t dinamiska izmÄra reÄ£istru kopas, piemÄram, tÄs, kas tiek nodroÅ”inÄtas ARM SVE paplaÅ”inÄjumÄ.
- SaistÄ«tÄjÄ tiek ieviesta opcija "--list-diagnostics", lai parÄdÄ«tu informÄciju, kas saistÄ«ta ar IFUNC (netieÅ”Äs funkcijas) definÄ«cijas darbÄ«bÄm un glibc-hwcaps apakÅ”direktorija atlasi.
- Ir ieviests makro __STDC_WANT_IEC_60559_EXT__, kas paredzÄts, lai pÄrbaudÄ«tu ISO C2X specifikÄcijas F pielikumÄ definÄto funkciju esamÄ«bu.
- Powerpc64* sistÄmÄm ir ieviesta opcija ā--disable-scvā, kas ļauj izveidot glibc, neatbalstot scv instrukciju.
- FailÄ gconv-modules ir atstÄta tikai minimÄlÄ gconv galveno moduļu kopa, bet pÄrÄjie tiek pÄrvietoti uz papildu failu gconv-modules-extra.conf, kas atrodas direktorijÄ gconv-modules.d.
- Linux platformai ir ieviests parametrs glibc.pthread.stack_cache_size, ko var izmantot, lai konfigurÄtu pthread steka keÅ”atmiÅas izmÄru.
- Funkcija inet_neta no galvenes faila ir novecojusi , kÄ arÄ« dažÄdas reti lietojamas funkcijas no (dn_count_labels, fp_nquery, fp_query, fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdnname, p_class, p_fqname, p_fqnname, p_option, p_query, p_rcode, p_outtime, res_horas, p_serv_s er, res_name vaicÄjums, res_queriesmatch, res_randomid, sym_ntop , sym_ntos, sym_ston) un (ns_datetosecs, ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename, ns_sprintrr, ns_sprintrrf, ns_subdomain). Å o funkciju vietÄ darbam ar DNS ieteicams izmantot atseviŔķas bibliotÄkas.
- Funkcijas pthread_mutex_consistent_np, thread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np un pthread_yield ir novecojuÅ”as, un to vietÄ ir jÄizmanto pthread_mutex_consistent, thread_mutexattr_getrobust, hread_mutexattr_getrobust un.sseched_mutexattr.
- PÄrtraukts izmantot simboliskÄs saites, lai saistÄ«tu instalÄtos koplietotos objektus ar Glibc versiju. Å Ädi objekti tagad tiek instalÄti tÄdi, kÄdi tie ir (piemÄram, libc.so.6 tagad ir fails, nevis saite uz libc-2.34.so).
- PÄc noklusÄjuma malloc atkļūdoÅ”anas lÄ«dzekļi ir atspÄjoti, piemÄram, MALLOC_CHECK_ (glibc.malloc.check), mtrace() un mcheck(), kas tiek pÄrvietoti uz atseviŔķu bibliotÄku libc_malloc_debug.so, kurÄ ir iekļautas arÄ« novecojuÅ”Äs funkcijas malloc_get_state un malloc_set_state. pÄrvietots.
- OperÄtÄjsistÄmÄ Linux tagad ir nepiecieÅ”ama /dev/shm ierÄ«ce, lai darbotos tÄdas funkcijas kÄ shm_open un sem_open.
- NovÄrstas ievainojamÄ«bas:
- CVE-2021-27645: nscd (nosaukumu servera keÅ”atmiÅas dÄmons) process avarÄ divkÄrÅ”a bezmaksas funkcijas izsaukuma dÄļ, apstrÄdÄjot Ä«paÅ”i izstrÄdÄtus tÄ«kla grupu pieprasÄ«jumus.
- CVE-2021-33574: piekļuve jau atbrÄ«votam atmiÅas apgabalam (izmantot pÄc brÄ«vas lietoÅ”anas) funkcijÄ mq_notify, ja tiek izmantots paziÅojuma veids SIGEV_THREAD ar pavediena atribÅ«tu, kuram ir iestatÄ«ta alternatÄ«va CPU radniecÄ«bas maska. ProblÄma var izraisÄ«t avÄriju, taÄu nevar izslÄgt arÄ« citas uzbrukuma iespÄjas.
- CVE-2021-35942: parametra lieluma pÄrpilde funkcijÄ wordexp var izraisÄ«t lietojumprogrammas avÄriju.
Avots: opennet.ru