Glibc 2.35 Нашри китобхонаи система

Пас аз шаш моҳи таҳия, китобхонаи системаи GNU C Library (glibc) 2.35 бароварда шуд, ки пурра ба талаботи стандартҳои ISO C11 ва POSIX.1-2017 мувофиқат мекунад. Нашри нав ислоҳи 66 таҳиягарро дар бар мегирад.

Баъзе такмилҳое, ки дар Glibc 2.35 амалӣ карда шудаанд, инҳоянд:

  • Дастгирии иловагии маҳаллии "C.UTF-8", ки қоидаҳои барҳамдиҳии ҳама рамзҳои Юникодро дар бар мегирад, аммо барои сарфаи ҷой бо истифодаи диапазони ASCII дар функсияҳои fnmatch, regexec ва regcomp маҳдуд аст. Лоиҳа тақрибан 400 КБ аст, ки 346 КБ маълумоти LC_CTYPE барои Юникод аст ва насби алоҳидаро талаб мекунад (ба Glibc сохта нашудааст).
  • Маълумоти рамзгузорӣ, маълумоти навъи аломатҳо ва ҷадвалҳои транслитератсия барои дастгирии мушаххасоти Юникод 14.0.0 нав карда шуданд.
  • ДАР Ва функсияҳо ва макросҳо амалӣ карда мешаванд, ки натиҷаро ба намуди тангтар гирд меоранд: fsqrt, fsqrtl, dsqrtl, ffma, ffmal, dfmal, fMsqrtfN, fMsqrtfNx, fMxsqrtfN, fMxsqrtfNx, fMfmafN, fMfNfMf. Функсияҳо дар мушаххасоти TS 18661-1:2014, TS 18661-3:2015 тавсиф шудаанд ва ба лоиҳаи стандарти ояндаи ISO C2X C илова карда шудаанд.
  • ДАР Ва функсияҳо ва макросҳо барои дарёфти ҳадди ақал ва ҳадди рақамҳои нуқтаи шинокунанда бо намудҳои float, long double, _FloatN ва _FloatNx, ки дар мушаххасоти IEEE 754-2019 тавсиф шудаанд ва ба лоиҳаи стандарти ояндаи ISO C2X C илова карда шудаанд: fmaximum, fmaximum_num , fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_mag, fminimum_mag, fminimum_mag_num.
  • ДАР константаҳои иловашуда барои рақамҳои нуқтаи шинокунандаи ягонаи дақиқ: 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_SQRTPIf, M_2_SQRTPIf, M_1_f.
  • Барои функсияҳои exp10 дар файли сарлавҳа Илова кардани макросҳои мувофиқ, ки ба намудҳои мушаххас алоқаманд нестанд.
  • ДАР макроси _PRINTF_NAN_LEN_MAX, ки дар лоиҳаи стандарти ISO C2X пешниҳод шудааст, илова кард.
  • Ба оилаи функсияҳои printf барои чопи ададҳои бутун дар намоиши бинарӣ мушаххаскунакҳои формати "%b" ва "%B" илова карда шуданд.
  • Системаи пайвасти динамикӣ алгоритми нави навъбандии DSO-ро амалӣ мекунад, ки ҷустуҷӯи амиқи аввал (DFS) -ро барои ҳалли масъалаҳои иҷроиш ҳангоми коркарди вобастагии ҳалқавӣ истифода мебарад. Барои интихоби алгоритми навъбандии DSO, параметри glibc.rtld.dynamic_sort пешниҳод карда мешавад, ки онро метавон ба "1" гузошт, то ба алгоритми кӯҳна баргардад.
  • ABI дастгирии функсияи нави '__memcmpek'-ро илова кардааст, ки аз ҷониби компиляторҳо барои оптимизатсияи истифодаи 'memcmp' истифода мешавад, агар арзиши баргардонидаи ин функсия танҳо барои тафтиши ҳолати анҷоми амалиёт истифода шавад.
  • Дастгирии иловашуда барои ба таври худкор бақайдгирии риштаҳо бо истифода аз занги системаи rseq (пайдарпайвандҳои аз нав оғозшаванда), ки аз ядрои Linux 4.18. Даъвати системавии rseq ба шумо имкон медиҳад, ки иҷрои пайвастаи як гурӯҳи дастурҳоро, ки қатъ нашудаанд, ташкил кунед ва натиҷаро бо дастури охирини гурӯҳ тасдиқ мекунад. Аслан, он воситаеро барои иҷрои хеле босуръати атомии амалиётҳо фароҳам меорад, ки агар бо риштаи дигар қатъ карда шавад, тоза ва дубора кӯшиш карда мешавад.
  • Иловаи рамзи /usr/bin/ld.so.
  • Маҷмӯи пешфарз ҳамаи файлҳои иҷрошавандаи барномаҳои дарунсохт ва маҷмӯи санҷиш дар ҳолати PIE (мустақили иҷрошавандаи мавқеъ) таъмин карда мешавад. Барои хомӯш кардани ин рафтор, имконоти "--disable-default-pie" пешбинӣ шудааст.
  • Барои Linux, танзимоти glibc.malloc.hugetlb илова карда шудааст, ки имкон медиҳад татбиқи malloc барои истифода бурдани занги системаи madvise бо парчами MADV_HUGEPAGE барои mmap ва sbrk ё бевосита истифода бурдани саҳифаҳои хотираи калон бо нишон додани парчами MAP_HUGETLB дар mmap занг мезанад. Дар ҳолати аввал, шумо метавонед самаранокии баландро ба даст оред, агар Саҳифаҳои бузурги шаффоф дар реҷаи девона истифода шаванд ва дар ҳолати дуюм, шумо метавонед саҳифаҳои калонеро, ки система ҳифз кардааст (Sahifaҳои бузург) истифода баред.
  • Функсияи _dl_find_object илова карда шуд, ки метавонад барои илова кардани иттилооти кушодани стек зангҳо истифода шавад.
  • Дастгирии иловагии меъмории OpenRISC (or1k-linux-gnu) дар ҳолати мулоим. Порт binutils 2.35, GCC 11 ва Linux ядрои 5.4-ро талаб мекунад.
  • Парчами сохтани "--with-rtld-early-cflags" илова карда шуд, ки метавонад барои муайян кардани парчамҳои иловагии компиляция ҳангоми сохтани рамзи ибтидоӣ барои пайвасти динамикӣ истифода шавад.
  • Барои платформаи Linux, функсияи epoll_pwait2 илова карда шудааст, ки аз epoll_wait бо нишон додани мӯҳлат бо дақиқии наносония фарқ мекунад.
  • Функсияи posix_spawn_file_actions_addtcsetpgrp_np барои бартараф кардани шароити мусобиқа ҳангоми таъини терминали назорат барои раванди нав илова карда шуд.
  • Барои барномаҳое, ки бо Glibc ва GCC 12+ тартиб дода шудаанд, режими муҳофизати "_FORTIFY_SOURCE=3" амалӣ карда мешавад, ки ҳангоми иҷрои вазифаҳои сатри дар файли сарлавҳаи string.h муайяншуда изофабории буфериро муайян мекунад. Фарқият аз реҷаи "_FORTIFY_SOURCE=2" ба санҷишҳои иловагӣ вобаста аст, ки эҳтимолан ба паст шудани кор оварда мерасонад.
  • Дастгирии Intel MPX (Extensions Protection Memory), ки барои тафтиши нишондиҳандаҳо барои ҳудуди хотира истифода мешавад, қатъ карда шуд (ин технология паҳн нашудааст ва аллакай аз GCC ва LLVM хориҷ карда шудааст).
  • Механизми пешакии пайванд ва тағирёбандаҳои муҳити марбути он LD_TRACE_PRELINKING ва LD_USE_LOAD_BIAS бекор карда шудаанд ва дар нашри оянда хориҷ карда мешаванд.

    Камбудиҳои ислоҳшуда:

    • CVE-2022-23218, CVE-2022-23219 - Зиёдшавии буфер дар функсияҳои svcunix_create ва clnt_create, ки дар натиҷаи нусхабардории мундариҷаи параметри номи файл ба стек бидуни тафтиши андозаи маълумоти нусхабардорӣ ба вуҷуд омадааст. Барои барномаҳое, ки бидуни муҳофизати стек ва бо истифода аз протоколи "unix" сохта шудаанд, осебпазирӣ метавонад ҳангоми коркарди номҳои файлҳои хеле дароз ба иҷроиши рамзи ҳамлакунанда оварда расонад.
    • CVE-2021-3998 осебпазирии функсияи realpath() мебошад, ки бинобар баргардонидани арзиши нодурусти дорои маълумоти боқимондаи тозанашуда аз стек мебошад. Барои барномаи SUID-root fusermount, осебпазириро барои ба даст овардани иттилооти ҳассос аз хотираи раванд истифода бурдан мумкин аст, масалан, барои гирифтани маълумот дар бораи нишондиҳандаҳо.
    • CVE-2021-3999 - Дар функсияи getcwd() пур шудани буфери як байтӣ. Мушкилот аз хатогие ба вуҷуд омадааст, ки аз соли 1995 инҷониб вуҷуд дорад. Барои ба вуҷуд омадани изофӣ, танҳо chdir()-ро дар феҳристи "/" дар фазои алоҳидаи номи нуқтаи васлкунӣ даъват кунед.

    Манбаъ: opennet.ru

Илова Эзоҳ