Glibc 2.31 የስርዓት ቤተ መፃህፍት መለቀቅ

ከስድስት ወር እድገት በኋላ ታትሟል የስርዓት ቤተ-መጽሐፍት መለቀቅ የጂኤንዩ ሲ ቤተ መፃህፍት (ጊቢሲ) 2.31, የ ISO C11 እና POSIX.1-2008 መስፈርቶችን ሙሉ በሙሉ የሚያሟላ. አዲሱ ልቀት የ58 ገንቢዎች ጥገናዎችን ያካትታል።

በ Glibc 2.31 ውስጥ ተተግብሯል ማሻሻያዎች ልብ ማለት ይችላሉ

  • በረቂቅ የወደፊት ISO መስፈርት ውስጥ የተገለጹ ችሎታዎችን ለማስቻል _ISOC2X_SOURCE ማክሮ ታክሏል ሲ 2 ኤክስ. እነዚህ ባህሪያት የሚነቁት _GNU_SOURCE ማክሮን ሲጠቀሙ ወይም በgcc ሲገነቡ በ"-std=gnu2x" ባንዲራ ነው፤
  • በ "math.h" ራስጌ ፋይል ውስጥ ለተገለጹት ተግባራት ውጤቶቻቸውን ወደ አነስ ዓይነት እንዲጠጋጉ ፣ተዛማጁ አጠቃላይ ዓይነት ማክሮዎች በፋይል "tgmath.h" ውስጥ ቀርበዋል ፣በተገለጸው TS 18661-1:2014 እና TS 18661-3፡ 2015;
  • የተጨመረው pthread_clockjoin_np() ተግባር፣ ክሩ እስኪጠናቀቅ ድረስ የሚጠብቅ፣ ጊዜው ያለፈበትን ጊዜ ግምት ውስጥ ያስገባ (ጊዜ ማብቂያው ከመጠናቀቁ በፊት የሚከሰት ከሆነ ተግባሩ ስህተት ይመልሳል)። የማይመሳስል pthread_timedjoin_np(), በ pthread_clockjoin_np () የጊዜ ማብቂያውን ለማስላት የሰዓት ቆጣሪውን አይነት መግለፅ ይቻላል - CLOCK_MONOTONIC (ስርዓቱ በእንቅልፍ ሁነታ ያሳለፈውን ጊዜ ግምት ውስጥ ያስገባል) ወይም CLOCK_REALTIME;
  • የዲ ኤን ኤስ ፈላጊው አሁን በ /etc/resolv.conf ውስጥ ያለውን የእምነት ማስታወቂያ አማራጭ እና የRES_TRUSSTAD ባንዲራ በ _res.options ውስጥ ይደግፋል፣ ሲዋቀር የDNSSEC ባንዲራ በዲኤንኤስ ጥያቄዎች ይተላለፋል። AD (የተረጋገጠ ውሂብ). በዚህ ሁነታ፣ በአገልጋዩ የተቀመጠው የ AD ባንዲራ እንደ res_search() ያሉ ተግባራትን ለሚጠሩ መተግበሪያዎች የሚገኝ ይሆናል። በነባሪነት፣ የተጠቆሙት አማራጮች ካልተዘጋጁ፣ glibc በጥያቄዎች ውስጥ የ AD ባንዲራውን አይገልጽም እና በምላሾች ውስጥ በራስ-ሰር ያጸዳዋል፣ ይህም የDNSSEC ቼኮች እንደጠፉ ያሳያል።
  • ለ Glibc የስራ ስርዓት ጥሪ ማሰሪያዎችን መገንባት ከአሁን በኋላ የሊኑክስ ከርነል ራስጌ ፋይሎችን መጫን አያስፈልገውም። ልዩነቱ የ 64-ቢት RISC-V አርክቴክቸር ነው;
  • ተወግዷል ተጋላጭነት CVE-2019-19126, ይህም ጥበቃውን እንዲያልፉ ያስችልዎታል
    ASLR የሴቱይድ ባንዲራ ባለው ፕሮግራሞች ውስጥ እና የLD_PREFER_MAP_32BIT_EXEC አካባቢ ተለዋዋጭን በመጠቀም በተጫኑ ቤተ-መጽሐፍት ውስጥ ያለውን የአድራሻ አቀማመጥ ይወስኑ።

ተኳኋኝነትን የሚያበላሹ ለውጦች፡-

  • totalorder() totalordermag() እና ተመሳሳይ ተግባራት ለሌሎች ተንሳፋፊ ነጥብ አይነቶች አሁን እሴቶችን በግዛት ውስጥ ስለመቀየር ማስጠንቀቂያዎችን ለማስወገድ ጠቋሚዎችን እንደ ክርክር ይቀበላሉ ናን, ለወደፊቱ የ C18661X መስፈርት በ TS 1-2 ምክሮች መሰረት.
    ተንሳፋፊ ነጥብ ክርክሮችን በቀጥታ የሚያልፉ ነባር ፈጻሚዎች ሳይሻሻሉ መስራታቸውን ይቀጥላሉ።

  • ለረጅም ጊዜ የተቋረጠው የጊዜ ተግባር ከግሊቢክ ጋር ለተገናኙ ሁለትዮሽዎች አይገኝም፣ እና ትርጉሙ ከጊዜ ጊዜ ተወግዷል። የስርዓት ሰዓቱን ለማቀናበር የሰዓት_ሰዓት ተግባርን ይጠቀሙ። ለወደፊቱ, የተቋረጠውን ftime ተግባር ለማስወገድ እቅድ አለን, እንዲሁም sys / timeb.h ራስጌ ፋይል (gettimeofday ወይም clock_gettime ከ ftime ይልቅ ጥቅም ላይ መዋል አለበት);
  • Gettimeofday ተግባር ከአሁን በኋላ ስለ ስርዓቱ-ሰፊ የሰዓት ሰቅ መረጃ አያልፍም (ይህ ባህሪ በ 4.2-BSD ቀናት ውስጥ ጠቃሚ ነበር እና ለብዙ አመታት ተቋርጧል)። የ'tzp' ነጋሪ እሴት አሁን ባዶ ጠቋሚ ማለፍ አለበት፣ እና የአካባቢ ሰዓት() ተግባር አሁን ባለው ሰአት መሰረት የሰዓት ሰቅ መረጃ ለማግኘት ስራ ላይ መዋል አለበት። Gettimeofdayን ዜሮ ባልሆነ ክርክር 'tzp' መጥራት በጊዜ ሰቅ መዋቅር ውስጥ ባዶ ቦታዎችን tz_minuteswest እና tz_dsttime ይመልሳል። የ gettimeofday ተግባር እራሱ በPOSIX ስር ተቋርጧል (ከጌትታይም ቀን ይልቅ የሰዓት_ግዜ ይመከራል) ነገር ግን ከግሊቢክ ለማስወገድ ምንም እቅድ የለም፤
  • settimeofday ከአሁን በኋላ ሰዓቱን እና ጊዜን የሚያስተካክል ማካካሻን ለመወሰን መለኪያዎች በአንድ ጊዜ ማለፍን አይደግፍም። የእለተ ቀን ሲደውሉ፣ ከክርክሩ አንዱ (ጊዜ ወይም ማካካሻ) አሁን ወደ ውድቅ መቀናበር አለበት፣ አለበለዚያ የተግባር ጥሪው በEINVAL ስህተት አይሳካም። ልክ እንደ gettimeofday፣ የ settimeofday ተግባር በPOSIX ተቋርጧል እና በሰዓት_ሴቲንግ ተግባር ወይም በአድጅታይም የቤተሰብ ተግባራት መተካት ይመከራል።
  • የ SPARC ISA v7 አርክቴክቸር ድጋፍ ተቋርጧል (v8 ድጋፍ ለአሁን ተይዟል፣ነገር ግን የCAS መመሪያዎችን ለሚደግፉ ፕሮሰሰሮች ብቻ ነው፣እንደ LEON ፕሮሰሰሮች እንጂ SuperSPARC ፕሮሰሰር አይደሉም)።
  • ማጣመር ካልተሳካ " ውስጥሰነፍ"፣ ለዚያ ተግባር የመጀመሪያ ጥሪ ድረስ ማገናኛው የአንድ ተግባር ምልክቶችን የማይፈልግበት ፣ የድሎፔን ተግባር አሁን ሂደቱን እንዲያጠናቅቅ ያስገድደዋል (ከዚህ ቀደም NULL ውድቀትን ይመልሳል)።
  • ለ MIPS hard-float ABI፣ የሚፈፀመው ቁልል አሁን ጥቅም ላይ ይውላል፣ ግንባታው የሊኑክስ 4.8+ ከርነል አጠቃቀምን በ"-enable-kernel=4.8.0" መለኪያ (ከርነል እስከ 4.8 ድረስ) በግልፅ ካልገደበ በስተቀር ለአንዳንድ MIPS አወቃቀሮች ታይቷል);
  • ከጊዜ አጠቃቀም ጋር በተያያዙ የስርዓት ጥሪዎች ላይ ያሉ ማሰሪያዎች የሰዓት64 የስርዓት ጥሪን ለመጠቀም ተንቀሳቅሰዋል፣ ካለ (በ32-ቢት ሲስተሞች፣ glibc መጀመሪያ የ64-ቢት ጊዜ አይነትን የሚቆጣጠር አዲስ የስርዓት ጥሪዎችን ይሞክራል፣ እና ምንም ከሌለ ይወድቃል) ወደ አሮጌዎቹ 32-ቢት ጥሪዎች).

ምንጭ: opennet.ru

አስተያየት ያክሉ