Glibc 2.34 System Library Release

Nei seis moannen fan ûntwikkeling is de GNU C Library (glibc) 2.34 systeembibleteek frijlitten, dy't folslein foldocht oan de easken fan 'e ISO C11 en POSIX.1-2017 noarmen. De nije release omfettet fixes fan 66 ûntwikkelders.

Guon fan 'e ferbetterings ymplementearre yn Glibc 2.34 omfetsje:

  • De biblioteken libpthread, libdl, libutil en libanl binne yntegreare yn 'e haadlibc-struktuer, it brûken fan har funksjonaliteit yn applikaasjes fereasket net langer keppeling mei de flaggen -lpthread, -ldl, -lutil en -lanl. Tariedingen binne makke foar de yntegraasje fan libresolv yn libc. Yntegraasje sil in mear naadleaze glibc-fernijingsproses mooglik meitsje en sil de útfiering fan runtime ferienfâldigje. Stubbiblioteken wurde levere om efterútkompatibiliteit te leverjen mei applikaasjes boud mei âldere ferzjes fan glibc. Troch it útwreidzjen fan it oantal struktueren en funksjes dy't yn glibc oanbean wurde, kinne problemen ûntstean yn applikaasjes wêryn't in krusing fan nammen is mei earder net brûkte libpthread, libdl, libutil, libresolv en libanl bibleteken.
  • Biedt de mooglikheid om in 64-bit time_t-type te brûken yn konfiguraasjes dy't tradisjoneel in 32-bit time_t-type brûkten. Yn sokke konfiguraasjes, bygelyks op x86-systemen, is de standert noch 32-bit time_t, mar dit gedrach kin no feroare wurde mei de makro "_TIME_BITS". Dizze funksje is allinich beskikber op systemen mei op syn minst Linux kernel ferzje 5.1.
  • De funksje _Fork tafoege, in ferfanging foar de gabelfunksje dy't foldocht oan 'e easken fan "async-signal-safe", d.w.s. wêrtroch feilich oproppen fan sinjaalbehandleren. Tidens de útfiering fan _Fork wurdt in minimale omjouwing makke dy't genôch is om funksjes te neamen yn sinjaalhannelers lykas ferheegje en útfiere sûnder funksjes te belûken dy't slûzen of ynterne steat kinne feroarje. De _Fork-oprop sil wurde definieare yn in takomstige ferzje fan 'e POSIX-standert, mar foar no is it opnommen as in GNU-útwreiding.
  • Foar it Linux-platfoarm is de execveat-funksje ymplementearre, wêrtroch jo in útfierber bestân kinne útfiere fanút in iepen bestânbeskriuwing. De nije funksje wurdt ek brûkt yn 'e ymplemintaasje fan' e fexecve-oprop, dy't gjin monteare pseudo-FS / proc by it opstarten fereasket.
  • De timespec_getres-funksje tafoege, definieare yn it ûntwerp ISO C2X-standert, dy't de timespec_get-funksje útwreidet mei mooglikheden dy't fergelykber binne mei de POSIX clock_getres-funksje.
  • Added close_range () funksje, wêrmei in proses te sluten in hiele oanbod fan iepen triem descriptors tagelyk. De funksje is beskikber op systemen mei in Linux kernel fan op syn minst ferzje 5.9.
  • Tafoege funksjes closefrom en posix_spawn_file_actions_addclosefrom_np, wêrtroch jo alle triembeskriuwers tagelyk kinne slute, wêrfan it oantal grutter is as of gelyk oan de opjûne wearde.
  • Yn "_DYNAMIC_STACK_SIZE_SOURCE" en "_GNU_SOURCE" modi, PTHREAD_STACK_MIN, MINSIGSTKSZ, en SIGSTKSZ binne net langer konstanten, wêrtroch stipe foar dynamysk grutte registersets lykas dy yn 'e ARM SVE tafoeging.
  • De linker ymplementearret de opsje "--list-diagnostyk" om ynformaasje te werjaan yn ferbân mei IFUNC (yndirekte funksje) definysje operaasjes en glibc-hwcaps submap seleksje.
  • De makro __STDC_WANT_IEC_60559_EXT__ is ymplementearre, ûntworpen om de oanwêzigens te kontrolearjen fan funksjes definieare yn bylage F fan 'e ISO C2X-spesifikaasje.
  • Foar powerpc64*-systemen is de opsje "--disable-scv" ymplementearre, wêrtroch jo glibc kinne bouwe sûnder de scv-ynstruksje te stypjen.
  • Allinne de minimale set fan kearn gconv modules is oerbleaun yn de gconv-modules triem, en de rest wurdt ferpleatst nei in ekstra triem gconv-modules-extra.conf, leit yn de gconv-modules.d triemtafel.
  • Foar it Linux-platfoarm wurdt de parameter glibc.pthread.stack_cache_size ymplementearre, dy't brûkt wurde kin om de grutte fan 'e pthread-stapel-cache te konfigurearjen.
  • De funksje inet_neta fan it -headerbestân ôfkard, lykas ferskate selden brûkte funksjes fan (dn_count_labels, fp_nquery, fp_query, fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdname, p_cdname, p_cdname, p_cdname, p_cdname, p_cdname, p_ 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) en_dateformat, maknst> (maknst>) kanon, ns _parse_ttl, ns_samedomain, ns_samename, ns_sprintrr, ns_sprintrrf, ns_subdomain). Ynstee fan dizze funksjes is it oan te rieden om aparte biblioteken te brûken foar wurkjen mei DNS.
  • De funksjes pthread_mutex_consistent_np, thread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np en pthread_yield binne ôfret en pthread_mutex_consistent, thread_mutexattr_getrobust, hread_mutexattr_setrobust_np en schisse moatte ynstee brûkt wurde.
  • Stopte mei it brûken fan symboalyske keppelings om ynstallearre dielde objekten te binen oan de Glibc-ferzje. Sokke objekten wurde no ynstallearre sa't se binne (bgl. libc.so.6 is no in bestân ynstee fan in keppeling nei libc-2.34.so).
  • Standert binne debuggen yn malloc útskeakele, lykas MALLOC_CHECK_ (glibc.malloc.check), mtrace() en mcheck(), dy't ferpleatst wurde nei in aparte bibleteek libc_malloc_debug.so, wêryn de ferâldere funksjes malloc_get_state en malloc_set_state ek hawwe ferpleatst binne.
  • Op Linux hawwe funksjes lykas shm_open en sem_open no it /dev/shm-apparaat nedich om te wurkjen.
  • Kwetsberheden fêst:
    • CVE-2021-27645: It proses fan nscd (nammeserver-caching-daemon) crasht troch in dûbele oprop nei de fergese funksje by it ferwurkjen fan spesjaal makke netgroepoanfragen.
    • CVE-2021-33574: Tagong ta in al befrijd ûnthâldgebiet (gebrûk-nei-fergees) yn 'e mq_notify-funksje by it brûken fan it SIGEV_THREAD-notifikaasjetype mei in thread-attribút wêrfoar in alternatyf CPU-affiniteitsmasker is ynsteld. It probleem kin liede ta in crash, mar oare oanfal opsjes kinne net útsletten wurde.
    • CVE-2021-35942: In parametergrutte oerstreaming yn 'e wordexp-funksje kin feroarsaakje dat de applikaasje crasht.

Boarne: opennet.ru

Add a comment