Glibc 2.30 సిస్టమ్ లైబ్రరీ విడుదల

ఆరు నెలల అభివృద్ధి తర్వాత ప్రచురించిన సిస్టమ్ లైబ్రరీ విడుదల GNU C లైబ్రరీ (glibc) 2.30, ఇది పూర్తిగా ISO C11 మరియు POSIX.1-2008 అవసరాలకు అనుగుణంగా ఉంటుంది. కొత్త విడుదలలో 48 డెవలపర్‌ల నుండి పరిష్కారాలు ఉన్నాయి.

Glibc 2.30లో అమలు చేయబడింది మెరుగుదలలు మీరు గమనించవచ్చు:

  • భాగస్వామ్య వస్తువులను ప్రీలోడ్ చేయడానికి డైనమిక్ లింకర్ "--ప్రీలోడ్" ఎంపికకు మద్దతు ఇస్తుంది (LD_PRELOAD ఎన్విరాన్మెంట్ వేరియబుల్ వలె);
  • ఇప్పటికే ఉన్న twalk ఫంక్షన్‌కు సమానమైన twalk_r ఫంక్షన్ జోడించబడింది, కానీ మీరు ఇచ్చిన కాల్‌బ్యాక్ ఫంక్షన్‌కు అదనపు ఆర్గ్యుమెంట్‌ను పాస్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది;
  • Linux కోసం, కొత్త getdents64, gettid మరియు tgkill ఫంక్షన్‌లు జోడించబడ్డాయి;
  • మెమరీ నిర్వహణ malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign మరియు posix_memalign విధులు మొత్తం వస్తువు పరిమాణం PTRDIFF_MAX విలువను అధిగమించినప్పుడు లోపం కోడ్‌తో ముగుస్తుంది. పాయింటర్ మానిప్యులేషన్ ఫలితంగా ptrdiff_t రకం ఓవర్‌ఫ్లో అయినప్పుడు ఈ మార్పు నిర్వచించబడని ప్రవర్తనను నివారిస్తుంది;
  • POSIX ప్రతిపాదిత విధులు జోడించబడ్డాయి pthread_cond_clockwait, pthread_mutex_clocklock,
    pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock, మరియు sem_clockwait, "టైమ్డ్" ఈక్వివలెంట్స్ లాగానే, టైమర్‌ను ఎంచుకోవడానికి అదనంగా clockid_t పరామితిని తీసుకుంటుంది;

  • యూనికోడ్ 12.1.0 స్పెసిఫికేషన్‌కు మద్దతుగా ఎన్‌కోడింగ్ డేటా, క్యారెక్టర్ టైప్ సమాచారం మరియు లిప్యంతరీకరణ పట్టికలు నవీకరించబడ్డాయి;
  • clock_gettime, clock_getres, clock_settime, clock_getcpuclockid మరియు clock_nanosleep ఫంక్షన్‌లు ఇకపై కొత్త అప్లికేషన్‌ల కోసం librt లైబ్రరీలో అందించబడవు మరియు బదులుగా libc నిర్వచనాలు స్వయంచాలకంగా ఉపయోగించబడతాయి;
  • /etc/resolv.conf "inet6" ఎంపికను నిలిపివేసింది. resolv.h నుండి వాడుకలో లేని RES_USE_INET6, RES_INSECURE1 మరియు RES_INSECURE2 ఫ్లాగ్‌లు తీసివేయబడ్డాయి;
  • "--enable-bind-now" ఎంపికను పేర్కొన్నప్పుడు, ఇన్‌స్టాల్ చేయబడిన ప్రోగ్రామ్‌లు ఇప్పుడు BIND_NOW ఫ్లాగ్‌ని ఉపయోగించి కట్టుబడి ఉంటాయి;
  • Linux-నిర్దిష్ట sys/sysctl.h హెడర్ ఫైల్ మరియు sysctl ఫంక్షన్ నిలిపివేయబడ్డాయి మరియు అప్లికేషన్‌లు బదులుగా /proc pseudo-FSని ఉపయోగించాలి;
  • Glibc ఇప్పుడు నిర్మించడానికి GCC 6.2 లేదా కొత్తది అవసరం (అప్లికేషన్‌లను రూపొందించడానికి ఏదైనా కంపైలర్‌ని ఉపయోగించవచ్చు);
  • దుర్బలత్వం పరిష్కరించబడింది CVE-2019-7309 కోసం memcmp ఫంక్షన్ అమలులో వాడుకలో లేని x32 సబ్‌ఆర్కిటెక్చర్ (x86 IA-32తో అయోమయం చెందకూడదు), దీని ఫలితంగా ఫంక్షన్ సరిపోని స్ట్రింగ్‌ల కోసం విలువ 0ని తప్పుగా అందించగలదు;
  • దుర్బలత్వం పరిష్కరించబడింది CVE-2019-9169, ఇది నిర్దిష్ట సాధారణ వ్యక్తీకరణలను ప్రాసెస్ చేస్తున్నప్పుడు సరిహద్దుల వెలుపలి బఫర్ నుండి డేటాను చదవడానికి కారణమవుతుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి