Publikimi i bibliotekës së sistemit Glibc 2.41

Pas gjashtë muajsh zhvillimi, është publikuar lëshimi i bibliotekës sistemike GNU C Library (glibc) 2.41, e cila i përket plotësisht kërkesave të standardeve ISO C11 dhe POSIX.1-2017. Në krijimin e këtij lëshimi morën pjesë 79 zhvillues.

Nga përmirësimet e realizuara në Glibc 2.41 mund të theksohen:

  • PĂ«r platformĂ«n Linux janĂ« shtuar funksionet e reja sched_setattr dhe sched_getattr, pĂ«rmes tĂ« cilave mund tĂ« vendosen / lexohen parametrat e planifikuesit tĂ« detyrave. NĂ« praktikĂ«, funksionet lejojnĂ« konfigurimin e politikave tĂ« planifikimit tĂ« kĂ«rkesave, tĂ« tilla si SCHED_DEADLINE, tĂ« cilat pĂ«rdorin parametra tĂ« tjerĂ« pĂ«rveç pĂ«rparĂ«sisĂ«.
  • NĂ« utilitarin iconv Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r konverzimin e kodimit nĂ« vend (nĂ«se emri i skedarĂ«ve hyrĂ«s dhe dalĂ«s Ă«shtĂ« i njĂ«jtĂ«, iconv tani automatikisht krijon njĂ« skedar tĂ« pĂ«rkohshĂ«m dhe pas pĂ«rfundimit tĂ« konvertimit zĂ«vendĂ«son skedarin origjinal me tĂ«).
  • NĂ« skedarin header math.h janĂ« shtuar funksionet trigonometrike, qĂ« u shfaqĂ«n nĂ« standardin C23 (TS 18661-4:2015): acospi, asinpi, atan2pi, atanpi, cospi, sinpi dhe tanpi.
  • Nga projekti CORE-MATH janĂ« transferuar versione tĂ« optimizuara dhe qĂ« pĂ«rdorin rrethimin e saktĂ« tĂ« funksioneve exp10m1f, exp2m1f, expm1f, log10f, log2p1f, log1pf, log10p1f, cbrtf, erff, erfcf, lgammaf, tgammaf, tanf, acosf, acoshf, asinf, asinhf, atanf, atan2f, atanhf, coshf, sinhf dhe tanhf.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimin ARM64 GCS (Guarded Control Stack) pĂ«r mbrojtjen harduerike tĂ« adresave tĂ« kthimit nga funksionet dhe bllokimin e eksploitĂ«ve qĂ« pĂ«rdorin metodat e programimit tĂ« orientuar nga kthimi (ROP — Return-Oriented Programming, eksploit formohet nga copĂ«za ekzistuese tĂ« instrukcioneve makinerike qĂ« pĂ«rfundojnĂ« me instruktionen e kthimit tĂ« kontrollit). ARM64 GCS lejon pĂ«rdorimin e teknikĂ«s sĂ« stack-ut tĂ« errĂ«t (shadow stack) pĂ«r mbrojtjen e proceseve nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit — pas kalimit tĂ« kontrollit nĂ« funksion, adresat e kthimit ruhen nga procesori jo vetĂ«m nĂ« stack-un e zakonshĂ«m, por edhe nĂ« njĂ« stack tĂ« veçantĂ« tĂ« errĂ«t, i cili nuk mund tĂ« modifikohet drejtpĂ«rdrejt. Para se tĂ« dalĂ« nga funksioni, adresa e kthimit nxirret nga stack-u i errĂ«t dhe verifikohet me adresĂ«n e kthimit nga stack-u kryesor. PĂ«r ndĂ«rtimin e Glibc me mbĂ«shtetje pĂ«r GCS nevojitet tĂ« paktĂ«n versioni 2.44 i binutils dhe GCC 15.
  • ËshtĂ« bĂ«rĂ« njĂ« punĂ« e madhe pĂ«r tĂ« pĂ«rmirĂ«suar gjenerimin e kodit dhe pĂ«r tĂ« rritur performancĂ«n e funksioneve matematikore pĂ«r arkitekturĂ«n ARM64/AArch64. JanĂ« realizuar optimizime duke pĂ«rdorur instrukcione vektoriale (SVE, Scalable Vector Extension) dhe zgjerime SIMD (Neon).
  • PĂ«r sistemet me procesorĂ« ARM64/AArch64 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r mekanizmin Memory Protection Keys, i pĂ«rdorur pĂ«r tĂ« kufizuar aksesin nĂ« faqet e memories pa ndryshuar tabelĂ«n e faqes sĂ« memories.
  • PĂ«r sistemet me procesorĂ« PowerPC64 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r instrukcione tĂ« zgjeruara pĂ«r mbrojtjen nga pĂ«rdorimi i programimit tĂ« orientuar nga kthimi nĂ« eksploit.
  • ËshtĂ« shtuar njĂ« lloj i ri arkitekture arch_kind_hygon pĂ«r procesorĂ«t kinezĂ« x86-64 Hygon, tĂ« ndĂ«rtuar mbi bazĂ«n e teknologjive AMD.
  • Grupi pĂ«r testimin e glibc Ă«shtĂ« zgjeruar ndjeshĂ«m, me numrin e testeve qĂ« Ă«shtĂ« rritur nga 5408 nĂ« 6232 krahasuar me versionin e kaluar.
  • ËshtĂ« shtuar mundĂ«sia e testimit tĂ« ndĂ«rtimit glibc me pĂ«rdorimin e kompilerĂ«ve C dhe C++ qĂ« nuk janĂ« ata qĂ« janĂ« pĂ«rdorur pĂ«r ndĂ«rtimin real. PĂ«r shembull, ‘configure TEST_CC="gcc-6.4.1" TEST_CXX="g++-6.4.1"‘ dhe ‘configure TEST_CC="clang" TEST_CXX="clang++"‘.
  • NĂ« opsionet e specifikuara nĂ« skedarin /etc/resolv.conf dhe variablĂ«n e ambientit RES_OPTIONS, Ă«shtĂ« realizuar mundĂ«sia e pĂ«rdorimit tĂ« prefiksit "-" pĂ«r tĂ« pastruar njĂ« opsion tĂ« vendosur mĂ« parĂ« me kĂ«tĂ« emĂ«r. PĂ«r shembull, nĂ«se nĂ« skedarin /etc/resolv.conf Ă«shtĂ« e specifikuar "options no-aaaa", prandaj, kur procesi fillohet me variablĂ«n Ambienti tĂ« "RES_OPTIONS=-no-aaaa" do tĂ« anulohet ndalimi pĂ«r dĂ«rgimin e kĂ«rkesave DNS pĂ«r tĂ« marrĂ« rekordin AAAA.
  • NĂ« DNS-resolv janĂ« shtuar mbĂ«shtetje pĂ«r opsionin "strict-error", ku funksioni getaddrinfo(), nĂ«se nuk Ă«shtĂ« specifikuar ndonjĂ«herĂ« lloji i adresave (AF_UNSPEC), do tĂ« provojĂ« tĂ« marrĂ« vlerat e rekordeve A (IPv4) dhe AAAA (IPv6) nga njĂ« server tjetĂ«r DNS, nĂ«se kĂ«rkesa pĂ«r rekordin A ose AAAA nĂ« serverin e parĂ« DNS dĂ«shtoi. Pa specifikimin e "strict-error" nĂ« njĂ« situatĂ« tĂ« tillĂ« do tĂ« kthehet adresa e marrĂ« nga njĂ« kĂ«rkesĂ« e pĂ«rpunuar me sukses, ndĂ«rsa vlera e kĂ«rkesĂ«s qĂ« dĂ«shtoi do tĂ« injorohet. PĂ«r shembull, nĂ«se server ktheu njĂ« rekord "A", por i dha njĂ« gabim nĂ« kĂ«rkesĂ«n "AAAA", getaddrinfo pa opsionin "strict-error" do tĂ« kthejĂ« menjĂ«herĂ« vetĂ«m adresĂ«n IPv4, ndĂ«rsa me opsionin "strict-error" do tĂ« provojĂ« tĂ« pĂ«rsĂ«risĂ« kĂ«rkesat nĂ« njĂ« server tjetĂ«r DNS.
  • TĂ« dhĂ«nat e kodimeve, informacioni mbi llojet e simboleve dhe tabelat e transliteracionit janĂ« pĂ«rditĂ«suar pĂ«r tĂ« mbĂ«shtetur specifikimin Unicode 16.0.0.
  • ËshtĂ« shtuar makrosi «_ISOC2Y_SOURCE», i cili mundĂ«son aktivizimin e funksioneve tĂ« pĂ«rcaktuara nĂ« skicĂ«n e standardit C2Y. TĂ« tilla funksione gjithashtu mund tĂ« aktivizohen pĂ«rmes makrosĂ« _GNU_SOURCE dhe pĂ«rmes flagjeve tĂ« kompilatorit («gcc -std=gnu2y»).
  • ËshtĂ« realizuar mjeti benchtest pĂ«r ndjekjen e performancĂ«s sĂ« funksioneve tĂ« ndryshme (zakonisht, atyre matematikore).
  • ËshtĂ« shtuar cilĂ«simi glibc.rtld.execstack, pĂ«rmes tĂ« cilit mund tĂ« ndalohet shprehimisht pĂ«rdorimi i stack-ut ekzekutiv.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r ABI-nĂ« e zgjerueshme rseq (sekuenca qĂ« mund tĂ« rivendosen), qĂ« ofron njĂ« mekanizĂ«m pĂ«r ekzekutimin e shpejtĂ« atomik tĂ« operacioneve (nĂ« rast se njĂ« operacion ndĂ«rpritet nga njĂ« thread tjetĂ«r, gjendja kthehet dhe pĂ«rpjekja pĂ«r ekzekutimin pĂ«rsĂ«ritet). NĂ« versionin e ri, ka mundĂ«si pĂ«r tĂ« pĂ«rdorur nĂ« rseq karakteristika tĂ« zgjeruara, qĂ« mungojnĂ« nĂ« ABI-nĂ« origjinale, tĂ« tilla si identifikuesit e ekzekutimit tĂ« paralel (mm_cid, memory-map concurrency ID) dhe identifikuesit e nyjĂ«s NUMA (node_id).
  • ËshtĂ« ndĂ«rprerĂ« mbĂ«shtetja pĂ«r portin nĂ« sistemet big-endian ARC (arceb-linux-gnu).
  • ËshtĂ« eliminuar njĂ« dobĂ«si (CVE-2025-039) qĂ« çon nĂ« mbushjen e tamponit gjatĂ« ekzekutimit tĂ« funksionit assert(). Mbushja ndodh kur tregohet njĂ« emĂ«r programi shumĂ« i madh (argv[0]). Problemi konsiderohet si i pashqetĂ«sueshĂ«m, pasi 4 byte shkruhen jashtĂ« tamponit, pĂ«rmbajtja e tĂ« cilave nuk mund tĂ« kontrollohet nga sulmuesi. NdĂ«rkohĂ«, interesant Ă«shtĂ« vetĂ« fakti qĂ« nĂ« funksionet e debugging Ă«shtĂ« shfaqur njĂ« dobĂ«si e cila lind nga njĂ« gabim gjatĂ« printimit tĂ« emrit tĂ« aplikacionit aktual.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster