Glibc 2.30 Համակարգային գրադարանի թողարկում

Զարգացման վեց ամիս հետո հրատարակված համակարգի գրադարանի թողարկում GNU C գրադարան (glibc) 2.30, որը լիովին համապատասխանում է ISO C11 և POSIX.1-2008 պահանջներին: Նոր թողարկումը ներառում է ուղղումներ 48 մշակողների կողմից:

Իրականացվել է Glibc 2.30-ում բարելավումներ կարող եք նշել.

  • Դինամիկ կապակցիչն աջակցում է «--preload» տարբերակը՝ ընդհանուր օբյեկտների նախնական բեռնման համար (նման է LD_PRELOAD միջավայրի փոփոխականին);
  • Ավելացվեց twalk_r ֆունկցիան, որը նման է արդեն գոյություն ունեցող twalk ֆունկցիային, բայց թույլ է տալիս լրացուցիչ արգումենտ փոխանցել տվյալ հետ կանչի ֆունկցիային.
  • 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 պարամետրը՝ ժամանակաչափ ընտրելու համար;

  • Կոդավորման տվյալները, նիշերի տիպի տեղեկությունները և տառադարձման աղյուսակները թարմացվել են՝ աջակցելու Unicode 12.1.0 բնութագրին;
  • Clock_gettime, clock_getres, clock_settime, clock_getcpuclockid և clock_nanosleep գործառույթներն այլևս չեն տրամադրվում librt գրադարանում նոր հավելվածների համար, և փոխարենը ավտոմատ կերպով օգտագործվում են libc սահմանումները;
  • /etc/resolv.conf-ը հնացել է «inet6» տարբերակը: Հեռացվել են հնացած RES_USE_INET6, RES_INSECURE1 և RES_INSECURE2 դրոշները resolv.h-ից;
  • «--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- ը, որը կարող է հանգեցնել որոշակի կանոնավոր արտահայտությունների մշակման ժամանակ տվյալների ընթերցման սահմաններից դուրս բուֆերից:

Source: opennet.ru

Добавить комментарий