Eldono de Sistemo Biblioteko Glibc 2.34

Post ses monatoj da evoluo, la eldono de la GNU C-Biblioteko (glibc) 2.34 estas publikigita, kiu plene konformas al la postuloj de la normoj ISO C11 kaj POSIX.1-2017. La nova eldono inkluzivas korektojn de 66 programistoj.

Inter la plibonigoj efektivigitaj en Glibc 2.34 estas:

  • La bibliotekoj libpthread, libdl, libutil kaj libanl estas integritaj en la ĉefan libc-strukturon, la uzo de ilia funkcieco en aplikaĵoj ne plu postulas ligi uzante la flagojn -lpthread, -ldl, -lutil kaj -lanl. Preparoj estis faritaj por la integriĝo de libresolv en libc. Integriĝo permesos pli senjuntan ĝisdatigprocezon de glibc kaj simpligos rultempan efektivigon. Stumpbibliotekoj estas disponigitaj por disponigi malantaŭan kongruon kun aplikoj konstruitaj kun pli malnovaj versioj de glibc. Pro la vastiĝo de la nombro da strukturoj kaj funkcioj disponigitaj en glibc, problemoj povas ekesti en aplikoj en kiuj ekzistas intersekco de nomoj kun antaŭe neuzataj bibliotekoj libpthread, libdl, libutil, libresolv kaj libanl.
  • Disponigas la kapablon uzi 64-bitan time_t-tipon en konfiguracioj kiuj tradicie uzis 32-bitan time_t-specon. En tiaj agordoj, ekzemple en x86-sistemoj, la defaŭlta ankoraŭ estas 32-bita time_t, sed ĉi tiu konduto nun povas esti ŝanĝita uzante la makroon "_TIME_BITS". Ĉi tiu funkcio disponeblas nur en sistemoj kun almenaŭ Linukso-kerna versio 5.1.
  • Aldonita la _Fork-funkcio, anstataŭaĵo por la forkfunkcio, kiu plenumas la postulojn de "async-signal-safe", t.e. permesante sekuran vokon de signal-prizorgantoj. Dum ekzekuto de _Fork, minimuma medio estas kreita, kiu sufiĉas por voki funkciojn en signal-traktiloj kiel ekzemple levi kaj execve sen impliki funkciojn kiuj povus ŝanĝi serurojn aŭ internan staton. La _Fork-voko estos difinita en estonta versio de la POSIX-normo, sed nuntempe ĝi estas inkluzivita kiel GNU-etendo.
  • Por la Linukso-platformo, la execveat-funkcio estis efektivigita, kiu ebligas al vi ruli ruleblan dosieron de malfermita dosiera priskribilo. La nova funkcio ankaŭ estas uzata en la efektivigo de la alvoko fexecve, kiu ne postulas muntitan pseŭdo-FS /proc ĉe ekfunkciigo.
  • Aldonita la funkcio timespec_getres, difinita en la skizo ISO C2X-normo, kiu etendas la funkcion timespec_get kun kapabloj similaj al la funkcio POSIX clock_getres.
  • Aldonita close_range() funkcio, kiu permesas al procezo fermi tutan gamon da malfermitaj dosierpriskribiloj samtempe. La funkcio disponeblas en sistemoj kun Linukso-kerno de almenaŭ versio 5.9.
  • Aldonitaj funkcioj closefrom kaj posix_spawn_file_actions_addclosefrom_np, permesante al vi fermi ĉiujn dosierpriskribilojn samtempe, kies nombro estas pli granda ol aŭ egala al la specifita valoro.
  • En "_DYNAMIC_STACK_SIZE_SOURCE" kaj "_GNU_SOURCE" reĝimoj, PTHREAD_STACK_MIN, MINSIGSTKSZ, kaj SIGSTKSZ ne plu estas konstantoj, permesante subtenon por dinamike grandaj registroj kiel tiuj provizitaj en la etendaĵo ARM SVE.
  • La ligilo efektivigas la "--list-diagnostics" opcion por montri informojn rilate al IFUNC (nerekta funkcio) difinoperacioj kaj glibc-hwcaps-subdosierujo-elekto.
  • La makroo __STDC_WANT_IEC_60559_EXT__ estis efektivigita, dizajnita por kontroli la ĉeeston de funkcioj difinitaj en Anekso F de la ISO C2X-specifo.
  • Por powerpc64* sistemoj, la opcio "--disable-scv" estis efektivigita, kiu permesas vin konstrui glibc sen subteni la scv-instrukcion.
  • Nur la minimuma aro de kernaj gconv-moduloj restas en la dosiero gconv-modules, kaj la ceteraj estas movitaj al plia dosiero gconv-modules-extra.conf, situanta en la dosierujo gconv-modules.d.
  • Por la Linukso-platformo, la parametro glibc.pthread.stack_cache_size estas efektivigita, kiu povas esti uzata por agordi la grandecon de la pthread-staka kaŝmemoro.
  • Malrekomendita la funkcio inet_neta de la kapdosiero , same kiel diversaj malofte uzataj funkcioj de (dn_count_labels, fp_nquery, fp_query, fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdname, p_cdname, n p_fqname, p_fqnname, p_opcio, 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) kaj n_dates_format_s_, kaj ns_s makecanon, ns _parse_ttl, ns_samedomain , ns_samename, ns_sprintrr, ns_sprintrrf, ns_subdomain). Anstataŭ ĉi tiuj funkcioj, oni rekomendas uzi apartajn bibliotekojn por labori kun DNS.
  • La funkcioj pthread_mutex_consistent_np, thread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np kaj pthread_yield estis malrekomenditaj kaj pthread_mutex_consistent, thread_mutexattr_getrobust, hread_mutexattr_setrobust kaj devus esti uzataj anstataŭe_setro_bustield.
  • Ĉesis uzi simbolajn ligilojn por ligi instalitajn komunajn objektojn al la Glibc-versio. Tiaj objektoj nun estas instalitaj kiel estas (ekz. libc.so.6 nun estas dosiero prefere ol ligilo al libc-2.34.so).
  • Defaŭlte, sencimigaj funkcioj en malloc estas malŝaltitaj, kiel MALLOC_CHECK_ (glibc.malloc.check), mtrace() kaj mcheck(), kiuj estas movitaj al aparta biblioteko libc_malloc_debug.so, en kiu la malnoviĝintaj funkcioj malloc_get_state kaj malloc_set_state ankaŭ havas estis movita.
  • En Linukso, funkcioj kiel shm_open kaj sem_open nun postulas, ke la /dev/shm-aparato funkciu.
  • Riparitaj vundeblecoj:
    • CVE-2021-27645: La procezo nscd (nomservila kaŝmemoro-demono) kraŝas pro duobla alvoko al la senpaga funkcio kiam oni prilaboras speciale kreitajn retgruppetojn.
    • CVE-2021-33574: Aliro al jam liberigita memorareo (use-post-libera) en la mq_notify-funkcio kiam oni uzas la SIGEV_THREAD sciigspecon kun fadena atributo por kiu alternativa CPU-afineca masko estas agordita. La problemo povus konduki al kraŝo, sed aliaj atakopcioj ne povas esti forĵetitaj.
    • CVE-2021-35942: Parametrogranda superfluo en la wordexp-funkcio povas kaŭzi kraŝon de la aplikaĵo.

fonto: opennet.ru

Aldoni komenton