Eldono de Sistemo Biblioteko Glibc 2.35

Post ses monatoj da evoluo, la eldono de la GNU C-Biblioteko (glibc) 2.35 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.35 estas:

  • Aldonita subteno por la lokaĵo "C.UTF-8", kiu inkluzivas kunligajn regulojn por ĉiuj Unikodaj kodoj, sed ŝpari spacon estas limigita al la uzo de ASCII-intervaloj en la fnmatch, regexec kaj regcomp funkcioj. La loko estas proksimume 400 KB, el kiuj 346 KB estas LC_CTYPE-datumoj por Unikodo, kaj postulas apartan instaladon (ne enkonstruitan en Glibc).
  • Kodigaj datumoj, signo-tipaj informoj kaj transliterumotabuloj estis ĝisdatigitaj por subteni la Unikodon 14.0.0-specifon.
  • kaj efektivigas funkciojn kaj makroojn, kiuj rondigas la rezulton al pli mallarĝa tipo: fsqrt, fsqrtl, dsqrtl, ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMxsqrtfmaNx, fMxsqrtfmaNx, fMsqrtfmaNx, fMsqrtfNx, fMsqrtfNx fMxfmafNx. La funkcioj estas priskribitaj en la specifoj TS 18661-1:2014, TS 18661-3:2015 kaj aldonitaj al la skizo de la estonta ISO C2X C-normo.
  • kaj efektivigas funkciojn kaj makroojn por trovi la minimumon kaj maksimumon de floseblaj, longaj duoblaj, _FloatN kaj _FloatNx glitkomaj nombroj, priskribitaj en la specifo IEEE 754-2019 kaj aldonitaj al la skizo de la estonteco. Normo ISO C2X: fmaximum, fmaximum_num, fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num, fminimum_mag, fminimum_mag_num.
  • Aldonitaj konstantoj por ununuraj precizecaj glitkomaj nombroj al : M_Ef, M_LOG2Ef, M_LOG10Ef, M_LN2f, M_LN10f, M_PIf, M_PI_2f, M_PI_4f, M_1_PIf, M_2_PIf, M_2_PIf, M_2_SQRT_f, M_1_SQRT_f, kaj M_SQRT_SQRT.
  • Por eksp10-funkcioj, respondaj makrooj kiuj ne estas ligitaj al specifaj tipoj estis aldonitaj al la kapdosiero .
  • Aldonis la makroon _PRINTF_NAN_LEN_MAX proponitan en la skizo ISO C2X-normo al .
  • Aldonitaj "%b" kaj "%B" formatspecifiloj al la printf-familio de funkcioj por presi entjerojn en binara reprezentado.
  • La dinamika ligsistemo efektivigas novan ordigan algoritmon, DSO, kiu uzas profund-unuan serĉon (DFS) por trakti spektakloproblemojn kun lopaj dependecoj. Por elekti la DSO-ordigan algoritmon, la parametro glibc.rtld.dynamic_sort estas proponita, kiu povas esti agordita al "1" por reveni al la malnova algoritmo.
  • La ABI aldonis subtenon por nova funkcio '__memcmpeq', uzata de kompililoj por optimumigi la uzon de 'memcmp' se la valoro redonita de ĉi tiu funkcio estas uzata nur por kontroli la kompletigan staton de operacio.
  • Aldonita subteno por aŭtomate registri fadenojn per la rseq (rekomenceblaj sekvencoj) sistemvoko disponigita ekde Linukso-kerno 4.18. La rseq-sistemvoko permesas al vi organizi la kontinuan ekzekuton de grupo de instrukcioj, kiu ne estas interrompita, kaj konfirmas la rezulton per la lasta instrukcio en la grupo. Esence, ĝi disponigas rimedon por tre rapida atoma ekzekuto de operacioj kiuj, se interrompitaj per alia fadeno, estas purigitaj kaj provitaj denove.
  • Aldonita simbolligo /usr/bin/ld.so.
  • La defaŭlta kunigo de ĉiuj ruleblaj dosieroj de enigitaj programoj kaj la testaro en PIE (pozicio sendependa rulebla) reĝimo estas provizita. Por malŝalti ĉi tiun konduton, la opcio "--disable-default-pie" estas provizita.
  • Por Linukso, agordo glibc.malloc.hugetlb estis aldonita por permesi la malloc-efektivigon esti ŝanĝita por uzi la madvise sistemvokon kun la flago MADV_HUGEPAGE por mmap kaj sbrk, aŭ por rekte uzi grandajn memorpaĝojn specifante la flagon MAP_HUGETLB en mmap. vokoj. En la unua kazo, rendimentogajnoj povas esti atingitaj se Travideblaj Grandegaj Paĝoj estas uzataj en freneza reĝimo, kaj en la dua kazo, la kapablo uzi sistem-rezervitajn grandajn paĝojn (Enorme Paĝoj) estas provizita.
  • Aldonita funkcio _dl_find_object, kiu povas esti uzata por aldoni informojn pri voka stako.
  • Aldonita subteno por la OpenRISC-arkitekturo (aŭ1k-linux-gnu) en mola-flota reĝimo. La haveno postulas binutils 2.35, GCC 11, kaj Linuksan kernon 5.4.
  • Aldonita konstrua flago "--with-rtld-early-cflags", kiu povas esti uzata por specifi kromajn kompilajn flagojn uzatajn dum konstruado de la komenca kodo por dinamika ligo.
  • Por la Linukso-platformo, la funkcio epoll_pwait2 estis aldonita, kiu diferencas de epoll_wait per precizigado de tempotempo kun nanosekunda precizeco.
  • Aldonita posix_spawn_file_actions_addtcsetpgrp_np-funkcio por forigi raskondiĉojn kiam agordas kontrolterminalon por nova procezo.
  • Por aplikaĵoj kompilitaj kun Glibc kaj GCC 12+, la protekta reĝimo "_FORTIFY_SOURCE=3" estas efektivigita, kiu detektas eblajn bufro-superfluojn dum plenumado de ĉenfunkcioj difinitaj en la kapdosiero string.h. La diferenco de la "_FORTIFY_SOURCE=2" reĝimo venas al pliaj kontroloj, kiuj eble povas konduki al malpliigita rendimento.
  • Subteno por Intel MPX (Memory Protection Extensions), uzata por kontroli montrilojn pri memorlimoj, estis nuligita (ĉi tiu teknologio ne disvastiĝis kaj jam estis forigita de GCC kaj LLVM).
  • La antaŭliga mekanismo kaj ĝiaj rilataj mediovariabloj LD_TRACE_PRELINKING kaj LD_USE_LOAD_BIAS estas malrekomenditaj kaj estos forigitaj en estonta eldono.

    Riparitaj vundeblecoj:

    • CVE-2022-23218, CVE-2022-23219 - Bufrofluo en la funkcioj svcunix_create kaj clnt_create, kaŭzita de kopiado de la enhavo de la dosiernomo parametro sur la stakon sen kontroli la grandecon de la kopiitaj datumoj. Por aplikaĵoj konstruitaj sen stakprotekto kaj uzante la "unikso" protokolon, la vundebleco povas konduki al la ekzekuto de atakanta kodo dum prilaborado de tre longaj dosiernomoj.
    • CVE-2021-3998 estas vundebleco en la realpath() funkcio pro la reveno, sub certaj kondiĉoj, de malĝusta valoro enhavanta nepurigitajn restajn datumojn de la stako. Por la SUID-radika fusermount-programo, la vundebleco povas esti uzita por akiri sentemajn informojn de procesmemoro, ekzemple, por akiri informojn pri montriloj.
    • CVE-2021-3999 - Unubajta bufro superfluo en la funkcio getcwd(). La problemo estas kaŭzita de cimo, kiu ĉeestas ekde 1995. Por kaŭzi superfluon, simple voku chdir() en la dosierujo "/" en aparta muntopunkta nomspaco.

    fonto: opennet.ru

Aldoni komenton