Toleo la Maktaba ya Mfumo wa Glibc 2.34

Baada ya miezi sita ya maendeleo, maktaba ya mfumo wa GNU C Library (glibc) 2.34 imetolewa, ambayo inatii kikamilifu mahitaji ya viwango vya ISO C11 na POSIX.1-2017. Toleo jipya linajumuisha marekebisho kutoka kwa watengenezaji 66.

Baadhi ya maboresho yaliyotekelezwa katika Glibc 2.34 ni pamoja na:

  • Maktaba za libpthread, libdl, libutil na libanl zimeunganishwa katika muundo mkuu wa libc, matumizi ya utendaji wao katika programu hauhitaji tena kuunganisha kwa kutumia -lpthread, -ldl, -lutil na -lanl bendera. Maandalizi yamefanywa kwa ujumuishaji wa libresolv kwenye libc. Ujumuishaji utaruhusu mchakato wa kusasisha glibc usio na mshono na utarahisisha utekelezaji wa wakati wa utekelezaji. Maktaba za Stub zimetolewa ili kutoa uoanifu wa nyuma na programu zilizoundwa na matoleo ya zamani ya glibc. Kwa sababu ya upanuzi wa idadi ya miundo na utendakazi zinazotolewa katika glibc, matatizo yanaweza kutokea katika programu ambamo kuna makutano ya majina na maktaba ambazo hazijatumika hapo awali libpthread, libdl, libutil, libresolv na libanl.
  • Hutoa uwezo wa kutumia aina ya 64-bit time_t katika usanidi ambao kwa kawaida ulitumia aina ya 32-bit time_t. Katika usanidi kama huu, kwa mfano kwenye mifumo ya x86, chaguo-msingi bado ni 32-bit time_t, lakini tabia hii sasa inaweza kubadilishwa kwa kutumia makro ya "_TIME_BITS". Kipengele hiki kinapatikana tu kwenye mifumo iliyo na angalau toleo la 5.1 la Linux kernel.
  • Imeongeza kitendakazi cha _Fork, badala ya kitendakazi cha uma ambacho kinakidhi mahitaji ya "async-signal-safe", i.e. kuruhusu simu salama kutoka kwa vidhibiti vya mawimbi. Wakati wa utekelezaji wa _Fork, mazingira machache hutengenezwa ambayo yanatosha kuita vidhibiti vya mawimbi kama vile kuongeza na kutekeleza bila kuhusisha vipengele vinavyoweza kubadilisha kufuli au hali ya ndani. Simu ya _Fork itafafanuliwa katika toleo la baadaye la kiwango cha POSIX, lakini kwa sasa imejumuishwa kama kiendelezi cha GNU.
  • Kwa jukwaa la Linux, kazi ya execveat imetekelezwa, ambayo inakuwezesha kuendesha faili inayoweza kutekelezwa kutoka kwa maelezo ya faili wazi. Chaguo za kukokotoa mpya pia hutumika katika utekelezaji wa simu ya fexecve, ambayo haihitaji pseudo-FS /proc iliyowekwa wakati wa kuanza.
  • Imeongeza chaguo za kukokotoa za timespec_getres, zilizobainishwa katika rasimu ya kiwango cha ISO C2X, ambacho hupanua kitendakazi cha timespec_get kwa uwezo sawa na chaguo za kukokotoa za POSIX clock_getres.
  • Kitendaji cha close_range() kimeongezwa, ambacho huruhusu mchakato wa kufunga safu nzima ya maelezo ya faili wazi mara moja. Chaguo hili linapatikana kwenye mifumo iliyo na kinu cha Linux cha angalau toleo la 5.9.
  • Vitendaji vilivyoongezwa karibu na posix_spawn_file_actions_addclosefrom_np, kukuruhusu kufunga vifafanuzi vyote vya faili mara moja, idadi ambayo ni kubwa kuliko au sawa na thamani iliyobainishwa.
  • Katika hali za "_DYNAMIC_STACK_SIZE_SOURCE" na "_GNU_SOURCE", PTHREAD_STACK_MIN, MINSIGSTKSZ na SIGSTKSZ si vibadilishi tena, vinavyoruhusu usaidizi wa seti za rejista za ukubwa unaobadilika kama zile zinazotolewa katika kiendelezi cha ARM SVE.
  • Kiunganishi hutekeleza chaguo la "--list-diagnostics" ili kuonyesha maelezo yanayohusiana na IFUNC (tendakazi isiyo ya moja kwa moja) na uteuzi wa saraka ndogo ya glibc-hwcaps.
  • Jumla __STDC_WANT_IEC_60559_EXT__ imetekelezwa, iliyoundwa ili kuangalia uwepo wa vitendaji vilivyofafanuliwa katika Kiambatisho F cha vipimo vya ISO C2X.
  • Kwa mifumo ya powerpc64*, chaguo la "--disable-scv" limetekelezwa, ambalo hukuruhusu kuunda glibc bila kuunga mkono maagizo ya scv.
  • Seti ya chini tu ya moduli za msingi za gconv ndizo zimesalia katika faili ya moduli za gconv, na zilizosalia huhamishiwa kwenye faili ya ziada ya gconv-modules-extra.conf, iliyoko katika saraka ya gconv-modules.d.
  • Kwa jukwaa la Linux, kigezo cha glibc.pthread.stack_cache_size kinatekelezwa, ambacho kinaweza kutumika kusanidi ukubwa wa akiba ya rafu ya pthread.
  • Imeacha kutumia chaguo za kukokotoa za inet_neta kutoka kwa faili ya kichwa cha , pamoja na vitendakazi mbalimbali ambavyo havijatumika sana kutoka (dn_count_labels, fp_nquery, fp_query, fp_resstat, hostlias, loc_aton, loc_ntoa, p_cdname, p_cdname, p_cdname 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, sympantos, sympantos, sympantos, sympantos_ ns_format_ttl, ns_makecanon, ns _parse_ttl, ns_samedomain , ns_samename, ns_sprintrr, ns_sprintrrf, ns_subdomain). Badala ya kazi hizi, inashauriwa kutumia maktaba tofauti kwa kufanya kazi na DNS.
  • Vipengele vya kukokotoa pthread_mutex_consistent_np, thread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np na pthread_yield vimeacha kutumika na pthread_mutex_consistent, thread_mutexattr_getrobust, hread_schetrobutt_yield zinapaswa kutumika badala yake.
  • Imesimamishwa kwa kutumia viungo vya kiishara kufunga vipengee vilivyosakinishwa vilivyoshirikiwa kwenye toleo la Glibc. Vipengee kama hivyo sasa vimesakinishwa kama vile (km libc.so.6 sasa ni faili badala ya kiungo cha libc-2.34.so).
  • Kwa chaguo-msingi, vipengele vya utatuzi katika malloc vimezimwa, kama vile MALLOC_CHECK_ (glibc.malloc.check), mtrace() na mcheck(), ambavyo huhamishwa hadi kwenye maktaba tofauti libc_malloc_debug.so, ambamo utendakazi wa kizamani malloc_get_state na malloc_set_state pia wameweka. imehamishwa.
  • Kwenye Linux, huduma kama vile shm_open na sem_open sasa zinahitaji kifaa cha /dev/shm kufanya kazi.
  • Udhaifu umewekwa:
    • CVE-2021-27645: Mchakato wa nscd (nameserver caching daemon) huacha kufanya kazi kutokana na simu mara mbili ya kufanya kazi bila malipo wakati wa kuchakata maombi yaliyoundwa mahususi ya netgroup.
    • CVE-2021-33574: Ufikiaji wa eneo la kumbukumbu ambalo tayari limeachiliwa (tumia-baada ya bila malipo) katika chaguo za kukokotoa za mq_notify unapotumia aina ya arifa ya SIGEV_THREAD yenye sifa ya nyuzi ambayo kinyago mbadala cha ushirika cha CPU kimewekwa. Tatizo linaweza kusababisha ajali, lakini chaguo nyingine za mashambulizi haziwezi kutengwa.
    • CVE-2021-35942: Kufurika kwa ukubwa wa kigezo katika chaguo za kukokotoa za wordexp kunaweza kusababisha programu kuacha kufanya kazi.

Chanzo: opennet.ru

Kuongeza maoni