Glibc 2.34 sistēmas bibliotēkas laidiens

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

Pievieno komentāru