انتشار کتابخانه سیستم Glibc 2.30

پس از شش ماه توسعه منتشر شد انتشار کتابخانه سیستم کتابخانه گنو سی (glibc) 2.30، که به طور کامل با الزامات استاندارد ISO C11 و POSIX.1-2008 مطابقت دارد. نسخه جدید شامل اصلاحاتی از 48 توسعه دهنده است.

از موارد اجرا شده در Glibc 2.30 بهبودها می توانید توجه داشته باشید:

  • پیوند دهنده پویا از گزینه "--preload" برای بارگذاری پیش بارگذاری اشیاء مشترک (مشابه با متغیر محیطی LD_PRELOAD) پشتیبانی می کند.
  • تابع twalk_r اضافه شده است، شبیه به تابع twalk موجود، اما به شما امکان می دهد یک آرگومان اضافی را به یک تابع callback داده شده ارسال کنید.
  • توابع جدید getdents64، gettid و tgkill برای لینوکس اضافه شده اند.
  • اطمینان حاصل کنید که توابع مدیریت حافظه malloc، calloc، realloc، reallocarray، valloc، pvalloc، memalign، و posix_memalign با کد خطا زمانی که اندازه کل شی از مقدار PTRDIFF_MAX بیشتر شود، خارج می شود. هنگامی که نتیجه دستکاری اشاره گر منجر به سرریز از نوع ptrdiff_t شود، این تغییر از رفتار نامشخص جلوگیری می کند.
  • اضافه شدن توابع POSIX pthread_cond_clockwait، pthread_mutex_clock،
    pthread_rwlock_clockrdlock، pthread_rwlock_clockwrlock و sem_clockwait، مشابه معادل‌های "زمان بندی شده"، اما علاوه بر این، پارامتر clockid_t را برای انتخاب تایمر می پذیرند.

  • داده‌های رمزگذاری، اطلاعات نوع کاراکتر و جداول نویسه‌گردانی برای پشتیبانی از مشخصات یونیکد 12.1.0 به‌روزرسانی شده‌اند.
  • کتابخانه librt دیگر توابع clock_gettime، clock_getres، clock_settime، clock_getcpuclockid، و clock_nanosleep را برای برنامه‌های جدید ارائه نمی‌کند، بلکه به طور خودکار از تعاریف در libc استفاده می‌کند.
  • گزینه "inet6" از /etc/resolv.conf حذف شده است. پرچم‌های منسوخ RES_USE_INET6، RES_INSECURE1 و RES_INSECURE2 از resolv.h حذف شدند.
  • هنگام تعیین گزینه "--enable-bind-now"، برنامه های نصب شده اکنون با استفاده از پرچم BIND_NOW محدود می شوند.
  • فایل هدر 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

اضافه کردن نظر