Serbestberdana Pirtûkxaneya Pergalê ya Glibc 2.31

Piştî şeş mehan ji pêşveçûnê weşandin serbestberdana pirtûkxaneya pergalê Pirtûkxaneya GNU C (glibc) 2.31, ku bi tevahî hewcedariyên standardên ISO C11 û POSIX.1-2008 pêk tîne. Daxuyaniya nû sererastkirinên 58 pêşdebiran vedihewîne.

Ji yên ku di Glibc 2.30 de hatine bicîh kirin pêşketinên hûn dikarin not bikin:

  • Makro _ISOC2X_SOURCE lê zêde kir da ku kapasîteyên ku di pêşnûmeya standard ISO ya pêşerojê de hatine destnîşan kirin çalak bike C2X. Ev taybetmendî jî dema ku makroya _GNU_SOURCE bikar tînin an jî dema ku di gcc-ê de bi ala “-std=gnu2x” têne çêkirin têne çalak kirin;
  • Ji bo fonksiyonên ku di pelê sernavê "math.h" de hatine diyar kirin ku encamên xwe bi celebek piçûktir vedigirin, makroyên celebên gelemperî yên têkildar di pelê "tgmath.h" de têne pêşniyar kirin, wekî ku ji hêla taybetmendiyên TS 18661-1:2014 û TS ve tê xwestin. 18661-3: 2015;
  • Fonksiyona pthread_clockjoin_np() lê zêde kir, ku li benda qedandina mijarê dimîne, li ber çavan derbas dibe (heke dem berî qedandinê çêbibe, fonksiyon dê xeletiyek vegere). Unlike pthread_timedjoin_np(), di pthread_clockjoin_np() de mimkun e ku meriv celebê demjimêrê ji bo hesabkirina dema wextê diyar bike - CLOCK_MONOTONIC (dema ku pergalê di moda xewê de derbas kiriye li ber çav digire) an jî CLOCK_REALTIME;
  • Naha çareserkerê DNS piştgirî dide vebijarka pêbawer-ad li /etc/resolv.conf û ala RES_TRUSTAD di _res.options de, dema ku were danîn, ala DNSSEC di daxwazên DNS de tê şandin. AD (daneyên pejirandî). Di vê modê de, ala AD-ê ya ku ji hêla serverê ve hatî danîn ji serîlêdanên ku fonksiyonên mîna res_search () bang dikin, peyda dibe. Bi xwerû, ger vebijarkên pêşniyarkirî neyên danîn, glibc di daxwazan de ala AD-ê diyar nake û bixweber di bersivan de wê paqij dike, û destnîşan dike ku kontrolên DNSSEC winda ne;
  • Avakirina girêdanên banga pergala xebatê ya ji bo Glibc êdî hewce nake ku pelên sernavê kernel Linux saz bikin. Ji îstîsna mîmariya RISC-V 64-bit e;
  • Ji holê rakirin lawazbûn CVE-2019-19126, ku dihêle hûn parastinê derbas bikin
    ASLR di bernameyên bi ala setuid de dihewîne û di pirtûkxaneyên barkirî de bi manîpulekirina guhêrbara jîngehê LD_PREFER_MAP_32BIT_EXEC rêzika navnîşan diyar dike.

Guhertinên ku lihevhatinê dişkînin:

  • totalorder(), totalordermag(), û fonksiyonên bi vî rengî ji bo celebên din ên xala herikandinê naha nîşankeran wekî arguman qebûl dikin da ku hişyariyên li ser veguheztina nirxan di dewletê de ji holê rakin. NaN, li gorî pêşniyarên TS 18661-1 ji bo standarda pêşerojê C2X pêşniyar kirin.
    Karkerên heyî yên ku rasterast argumanên xala herikîn derbas dikin dê bêyî guhertin berdewam bikin;

  • Fonksîyona stimê ya dirêj-binavkirî êdî ji bo binaryên bi glibc-girêdayî tune ye, û pênaseya wê ji time.h hatî rakirin. Ji bo danîna dema pergalê, fonksiyona demjimêr_settime bikar bînin. Di paşerojê de, em plan dikin ku fonksiyona ftime ya neçapkirî, û her weha pelê sernavê sys/timeb.h rakin (divê gettimeofday an clock_gettime li şûna ftime were bikar anîn);
  • Fonksiyona gettimeofday êdî agahdariya li ser devera demjimêra-berfireh a pergalê derbas nake (ev taybetmendî di rojên 4.2-BSD de têkildar bû û bi gelek salan ve hatî hilweşandin). Naha divê argumana 'tzp' ji nîşanek null derbas bibe, û fonksiyona localtime() were bikar anîn da ku agahdariya devera demjimêr li gorî dema niha were bidestxistin. Gazîkirina gettimeofday bi argumanek ne-sifir 'tzp' dê qadên vala tz_minuteswest û tz_dsttime vegerîne di avahiya herêma demjimêr de. Fonksiyona gettimeofday bixwe di bin POSIX-ê de tê paşguh kirin (clock_gettime li şûna gettimeofday tê pêşniyar kirin), lê planek tune ku wê ji glibc were rakirin;
  • settimeofday êdî derbaskirina hevdemî ya parametreyan ji bo danîna dem û veqetandina dem-serrastkirinê piştgirî nake. Dema ku bangî settimeofdayê tê kirin, divê yek ji argumanan (dem an veqetandin) niha wekî betal were danîn, wekî din dê banga fonksiyonê bi xeletiyek EINVAL têk nebe. Mîna gettimeofday, fonksiyona settimeofday di POSIX-ê de ji holê rabûye û tê pêşniyar kirin ku li şûna fonksiyona clock_settime an malbata fonksiyonên adjtime were guheztin;
  • Piştgiriya ji bo mîmariya SPARC ISA v7 rawestiyaye (piştgiriya v8 ji bo naha maye, lê tenê ji bo pêvajoyên ku rêwerzên CAS piştgirî dikin, wek pêvajoyên LEON, ne pêvajoyên SuperSPARC).
  • Heke hevberkirin di "qelp", ku tê de girêdanker heya banga yekem a fonksiyonê li sembolên fonksiyonê bigere, naha fonksiyona dlopen neçar dike ku pêvajoyê biqede (berê li ser têkçûnê NULL vedigere);
  • Ji bo ABI-ya hişk-float MIPS-ê, staka îcrakar naha tê bikar anîn, heya ku avahî bi eşkere karanîna kernel Linux 4.8+ bi rêgeza "-enable-kernel=4.8.0" ve sînordar neke (bi kernelên heya 4.8-an re, têkçûn dibin ji bo hin mîhengên MIPS têne dîtin);
  • Girêdanên li dora bangên pergalê yên ku bi manîpulasyona demê ve girêdayî ne hatine veguheztin da ku banga pergala time64 bikar bînin, heke hebe (li ser pergalên 32-bit, glibc pêşî bangên pergalê yên nû yên ku celebê wextê 64-bit manîpule dikin diceribîne, û heke tune be, dikeve vegerin bangên 32-bit yên berê).

Source: opennet.ru

Add a comment