Pas një periudhë gjashtë mujore punë, është publikuar të lidhni versionin e bibliotekës sistemike GNU C Library (glibc) 2.34, e cila plotëson plotësisht kërkesat e standardeve ISO C11 dhe POSIX.1-2017. Ky version i ri përfshin korrigjime nga 66 zhvillues.
Nga përmirësimet e zbatuara në Glibc 2.34, mund të theksohen:
- Bibliotekat libpthread, libdl, libutil dhe libanl janĂ« integruar nĂ« pjesĂ«n kryesore tĂ« libc, duke bĂ«rĂ« tĂ« panevojshme lidhjen e funksionaliteteve tĂ« tyre nĂ« aplikacione me flag-at -lpthread, -ldl, -lutil dhe -lanl. ĂshtĂ« pĂ«rgatitur integrimi i libresolv nĂ« libc. Integrimi do tĂ« arrihet nĂ« njĂ« proces mĂ« tĂ« unifikuar tĂ« pĂ«rditĂ«simeve tĂ« glibc dhe do tĂ« thjeshtojĂ«implementimin e runtime. PĂ«r tĂ« siguruar qĂ«mbahet pĂ«rputhje me aplikacionet e ndĂ«rtuara me versionet e vjetra tĂ« glibc, janĂ« ofruar bibliotekat mbĂ«shtetĂ«se. PĂ«r shkak tĂ« zgjerimit tĂ« numrit tĂ« strukturave dhe funksioneve qĂ« ofrohen nĂ« glibc, nuk pĂ«rjashtohet mundĂ«sia e shfaqjes sĂ« problemeve nĂ« aplikacione ku ka pĂ«rputhje emrash me bibliotekat e reja libpthread, libdl, libutil, libresolv dhe libanl.
- ĂshtĂ« ofruar mundĂ«sia e pĂ«rdorimit tĂ« tipit 64-bit time_t nĂ« konfigurimet ku tradicionalisht Ă«shtĂ« pĂ«rdorur tipi 32-bit time_t. NĂ« kĂ«to konfigurime, pĂ«r shembull, nĂ« sistemet x86, ende mbetet 32-bit time_t si parazgjedhje, por kjo sjellje tani mund tĂ« ndryshohet me ndihmĂ«n e makros «_TIME_BITS». Kjo mundĂ«si Ă«shtĂ« e disponueshme vetĂ«m nĂ« sistemet me kernel Linux tĂ« paktĂ«n versioni 5.1.
- Funksioni _Fork është shtuar, një zëvendësim për funksionin fork, që i përmbush kërkesat «async-signal-safe», pra që lejon thirrjen e sigurt nga trajtuesit e sinjalit. Gjatë ekzekutimit të _Fork, krijohet një ambient minimal, i mjaftueshëm për thirrjen e funksioneve në trajtuesit e sinjalit, si raise dhe execve, pa përfshirë funksionet që mund të çojnë në ndryshimin e bllokimeve ose gjendjes së brendshme. Thirrja e _Fork do të përcaktohet në versionin e ardhshëm të standardit POSIX, por për momentin është përfshirë si një nga zgjerimet GNU.
- Për platformën Linux është realizuar funksioni execveat, i cili lejon ekzekutimin e një skedari ekzekutiv nga një deshifrues i hapur të skedarëve. Funksioni i ri gjithashtu përdoret në implementimin e thirrjes fexecve që nuk kërkon praninë e sistemit të montuar pseudo-FS /proc gjatë ekzekutimit.
- Funksioni timespec_getres u shtua, i përcaktuar në skicën e standardit ISO C2X dhe që plotëson funksionin timespec_get me mundësi të ngjashme me funksionin POSIX clock_getres.
- Funksioni close_range() u shtua, duke i lejuar procesit të mbyllë një gamë të të gjithë deshifruesve të hapur të skedarëve njëherësh. Funksioni është i disponueshëm në sistemet me bërthamë Linux, të paktën versioni 5.9.
- Funksionet closefrom dhe posix_spawn_file_actions_addclosefrom_np u shtuan, duke lejuar mbylljen e të gjithë deshifruesve të skedarëve, numri i të cilëve është më i madh ose i barabartë me vlerën e caktuar.
- NĂ« modet â_DYNAMIC_STACK_SIZE_SOURCEâ dhe â_GNU_SOURCEâ, vlerat PTHREAD_STACK_MIN, MINSIGSTKSZ, dhe SIGSTKSZ tani nuk janĂ« konstanta, duke mundĂ«suar mbĂ«shtetje pĂ«r grupe regjistrash me madhĂ«si dinamike, pĂ«r shembull, tĂ« ofruara nĂ« zgjerimin ARM SVE.
- NĂ« lidhĂ«s Ă«shtĂ« implementuar opsioni ââlist-diagnosticsâ pĂ«r tĂ« shfaqur informacionin e lidhur me operacionet e pĂ«rcaktimit IFUNC (funksioni indirekt) dhe zgjedhjen e nĂ«nkatalogut glibc-hwcaps.
- Makroja __STDC_WANT_IEC_60559_EXT__ Ă«shtĂ« realizuar, e cila ka pĂ«r qĂ«llim verifikimin e pranisĂ« sĂ« funksioneve tĂ« pĂ«rcaktuara nĂ« aplikacionin âFâ tĂ« specifikimit ISO C2X.
- PĂ«r sistemet powerpc64* Ă«shtĂ« implementuar opsioni ââdisable-scvâ, i cili lejon ndĂ«rtimin e glibc pa mbĂ«shtetje pĂ«r instrukcionin scv.
- Në skedarin gconv-modules është lënë vetëm një grup minimal i moduleve bazë gconv, ndërsa të tjerat janë zhvendosur në një skedar të jashtëm gconv-modules-extra.conf, të vendosur në katalogun gconv-modules.d.
- Për platformën Linux është implementuar parametri glibc.pthread.stack_cache_size, i cili mund të përdoret për të konfiguruar madhësinë e caches së stack-ut pthread.
- Funksioni inet_neta nga skedari <arpa/inet.h> është shpallur i vjetruar, si dhe disa funksione të përdorura rrallë nga <resolv.h> (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_time, p_type, putlong, putshort, res_hostalias, res_isourserver, res_nameinquery, res_queriesmatch, res_randomid, sym_ntop, sym_ntos, sym_ston) dhe <arpa/nameser.h> (ns_datetosecs, ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename, ns_sprintrr, ns_sprintrrf, ns_subdomain). Në vend të këtyre funksioneve, rekomandohet përdorimi i bibliotikave të veçanta për punë me DNS.
- Funksionet pthread_mutex_consistent_np, thread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np dhe pthread_yield janë shpallur të vjetra, dhe në vend të tyre duhet të përdoren pthread_mutex_consistent, thread_mutexattr_getrobust, thread_mutexattr_setrobust dhe sched_yield.
- Përdorimi i lidhjeve simbolike për lidhjen e objekteve të ndarë të instaluara me versionin e Glibc është ndaluar. Tani këto objekte instalohen si ato që janë (për shembull, libc.so.6 tani është një skedar, jo një lidhje me libc-2.34.so).
- Me default janë çaktivizuar mundësitë e debugging në malloc, si MALLOC_CHECK_ (glibc.malloc.check), mtrace() dhe mcheck(), të cilat janë kaluar në një bibliotekë të veçantë libc_malloc_debug.so, në të cilën janë transfertuar gjithashtu funksionet e vjetra malloc_get_state dhe malloc_set_state.
- Në Linux, për të punuar funksione si shm_open dhe sem_open, tani kërkohet një pajisje /dev/shm.
- Janë eliminuar vulnerabilitetet:
- CVE-2021-27645: dështimi i procesit nscd (daemon për ruajtjen e cache-n e serverit të emrave) për shkak të thirrjes së dyfishtë të funksionit free gjatë përpunimit të kërkesave netgroup të formatuara posaçërisht.
- CVE-2021-33574: qasja në një zonë kujtese tashmë të liruar (use-after-free) në funksionin mq_notify kur përdoret lloji i njoftimeve SIGEV_THREAD me atributin e thread-it për të cilin është vendosur një maskë alternative mbështetjeje për CPU. Problemi mund të çojë në dështim, por nuk përjashtohen as variante të tjera sulmi.
- CVE-2021-35942: mbushja e tepricës së parametrave në funksionin wordexp mund të çojë në dështimin e aplikacionit.
Burimi: opennet.ru
