GNU C Kitabxanası hər hansı bir GNU / Linux dağıtımı üçün açıq və pulsuz bir kütüphan proqramıdır. Glibc kimi tanınır və UNIX kimi hər hansı bir kompüter əməliyyat sistemi tərəfindən tələb olunur. GNU C Kitabxanası sistem çağırışlarını, həmçinin malloc, açıq, exit, printf və s. Kimi digər əsas funksiyaları müəyyənləşdirməkdən məsuldur.
Bütün Linux kernel bazlı əməliyyat sistemlərində default olaraq istifadə olunur
GNU C Kitabxanası bütün Linux kernel bazlı əməliyyat sistemində, GNU sistemlərindəki əsas C kitabxanası və Linux kernelinin dəstəkləyən istənilən digər əməliyyat sistemi kimi çıxış etmək üçün nəzərdə tutulmuşdur. p>
Portativ olmaq üçün nəzərdə tutulmuşdur
Glibc tamamilə C proqramlaşdırma dilində yazılmış yüksək performanslı C kitabxanadır. POSIX.1-2008 və ISO C11 daxil olmaqla, bütün müvafiq standartları dəstəkləmək üçün portativ, beynəlxalq səviyyədə və dizayn edilmişdir.
Tanınmış UNIX variantlarının xüsusiyyətlərini dəstəkləyir
GNU C Kitabxanası tam beynəlxalq bir interfeysə malik olsa da, daxili uyğunluq rejimləri sayəsində BSD və System V kimi tanınmış UNIX variantlarının xüsusiyyətlərini dəstəkləməyə çalışır.
GNU C Kitabxanası ilə başlayın
GNU C Kitabxanasının demək olar ki, bütün GNU / Linux əməliyyat sistemlərində default olaraq quraşdırılmasına baxmayaraq, öz veb saytında və ya Softoware-da yayımlanan mənbə paketini istifadə edərək, özünüzü yenidən bərpa edə bilərsiniz. Başlanğıc kataloqunuzdakı arxivi başlamaq, yükləmək və saxlamaq üçün.
Arxivi arxiv idarəçiliyi proqramı ilə açın, bir terminal pəncərəsi açın, arxiv fayllarının çıxarıldığı yerə keçin, '/ configure & rsquo; proqramı konfiqurasiya komutu (müxtəlif konfiqurasiya seçimləri üçün & lsquo; / configure --help & rsquo; əmrinə baxın.)
Sonra "& rsquo; kitabxana kompilyasiya etmək əmri, sistemin hər hansı birində quraşdırıla bilən "yüklemek & rsquo; və ya 'sudo install & rsquo; əmrlər, kökiniz və ya imtiyazlı istifadəçinizə bağlıdır.
Bu sürümdə yeni nə :
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
2.2.2 versiyasında yeni nədir :
- https://sourceware.org/ml/libc-announce/2018/msg00000.html
Sürümdeki yeni :
- GNU C Kitabxanasının bu versiyasının istifadə oluna biləcəyi minimum Linux kernel versiyası Linux kernel versiyası 2.6.32 və ya daha yüksək olduqda [4567] 86 və x86_64 istisna olmaqla, 3.2, (zaten tələb olunan kernel 3.2-dən daha yeni versiyalar, bu tələblər dəyişməz qalır). Linux 3.2 və ya daha sonrakı çekirdek başlıqları bütün mimarilerde tələb olunur.
- Bu pap_AN yerli silindi. Bu, uzun müddət qadağan edilmişdir. Bunun əvəzinə pap_AW & amp; pap_CW, hər ikisi uzun müddət əvvəlki sürümələrə daxil edilmişdir.
- Readdir_r və readdir64_r funksiyaları etibarsızdır. Bunun yerine readdir və readdir64 istifadə etmək məsləhətdir.
- "Birlik gözləyin" növü silindi. 1990-cı illərin əvvəllərində POSIX-in tərkib hissəsi olmamışdı. Proqram kodu "union wait" yerinə int növünü istifadə etməlidir.
- Böyük paylanmış sistem idarəsini asanlaşdırmaq üçün yeni bir NSS hərəkəti əlavə edilir. Aksiya, MERGE, LDAP kimi uzaqdan istifadəçi mağazalarının, birləşdirilmiş etimadnamələrin istifadə edilməsini, yenilənməsini və idarə olunmasını təmin etmək üçün / etc / qrupları kimi yerli istifadəçi mağazalarına birləşdirilməsinə imkan verir. Yeni fəaliyyət, /etc/nsswitch.conf: qrupu: faylları [SUCCESS = birləşmə] ilə konfiqurasiya etməklə istifadə edilə bilər Nis Stephen Gallagher (Red Hat) tərəfindən həyata keçirilir.
- Köhnəlmiş __malloc_initialize_hook dəyişən API'dən silindi.
- Uzun müddət istifadə edilməmiş - kold-stil seçimi silindi. 16 ildən çox bir şey etməmişdir. Bu seçimi istifadə edərək, skriptlər təhlükəsiz olaraq buraxa bilər.
- nextupl, nextup, nextupf, nextdownl, nextdown və nextdownf libm əlavə edilir. Onlar TS 18661 və IEEE754-2008 tərəfindən müəyyən edilir. Növbəti funksiyalar müsbət infinity istiqamətində növbəti təmsil dəyərini qaytarır və növbəti funksiya funksiyaları növbəti göstərilən dəyərləri mənfi sonsuzluq istiqamətində qaytarır. Hal-hazırda GNU uzantıları kimi fəaliyyət göstərir.
- Təhlükəsizlik ilə bağlı dəyişikliklər:
- _nss_dns_getnetbyname_r-də lazımsız yığışma surəti silindi. Getnetbyname çox uzun bir adla çağırıldığında yığma daşmasına səbəb ola bilər. (CVE-2016-3075)
- Daha əvvəl, getaddrinfo, CVE-2013-4458 üçün düzəliş tətbiq olunduqdan sonra hətta yığın daşımasına səbəb ola bilən çox sayda ünvanı məlumat yığışdırdı. Getaddrinfo indi yerinə yığın yerləşdirmə istifadə edir. Michael Petlan bildirir. (CVE-2016-3706)
- GLOB_ALTDIRFUNC bayrağı ilə çağırıldıqda glob funksiyası yığma bazlı bir tampon daşqınından əziyyət çəkirdi və uzun bir fayl adı ilə qarşılaşdı. Aleksandr Cherepanov bildirir. (CVE-2016-1234)
- Günəş RPC UDP müştəri, hazırlanmış ICMP və UDP mesajları ilə su basdıqda bütün mövcud yığın boşluğunu çıxara bilərdi. Aldy Hernandez 'in GCC üçün alloca plugin hesabat. (CVE-2016-4429)
- libresolv'teki IPv6 adı server yönetim kodu, yaradılan her bir iş parçacığı üçün bir yaddaş sızıntısına neden ola bilər, başarısız bir adlandırma araması gerçekleştirir ve çıkar. Zamanla, bu, yaddaş tükənməsi səbəbindən xidmətdən imtina etməyə səbəb ola bilər. Matthias Schiffer tərəfindən verilib. (CVE-2016-5417)
- Aşağıdakı hatalar bu azadlıqla həll edilir:
- [1170] localedata: ne_NP: yeniləmə Nepal dili müəyyən fayl [3629] manual: string.texi-də stpcpy təsviri MS-DOS yerinə MS-DOG aiddir. [6527] malloc: [powerpc] PowerPC üçün qeyri-kafiliyi malloc [6796] math: fdim () daşımada errno təyin etməmişdir [10354] libc: posix_spawn vfork () istifadə etməlidir daha çox hallarda [11213] localedata: localedata: [12143] localedata: chr_US: yeni Cherokee locale [12450] localedata: sgs_LT: yeni locale [12676] localedata: ln_CD: yeni locale [13237] localedata: LC_ADDRESS.country_name: bütün yerli bölgələri yeniləyin CLDR data [13304] matematik: fma, fmaf, fmal yanlış nəticələr çıxarır [14259] qurmaq: konfiqurasiya üçün lokaledir arg rədd edilir [14499] nptl: posix_spawn atfork işleyicilerini çağırır / vfork istifadə edirmi? [14750] libc: posix_spawn-də yarışda istifadə vəziyyəti və siqnal işləyiciləri [14934] localedata: es_CL: ilk həftə içi gündüz çili dili yerli [15262] localedata: LC_MESSAGES.yesexpr / noexpr: romanisation qeyri-səmərəli istifadəsi [15263] localedata: LC_MESSAGES.yesexpr / noexpr: 1/0 və +/- [15264] localedata uyğunsuz istifadə: LC_MESSAGES.[15368] nptl: raise () async-signal-safe [15479] riyaziyyat: ceil, mərtəbə, dəyirmi və trunc qeyri-dəqiq istisna [15578] localedata: kk_KZ: müxtəlif yenilikləri [16003] [16137] localedata: iw_IL: punt köhnə locale [16190] localedata: eo: yeni esperanto locale [16374] localedata: lv_LV: LC_MONETARY'de valyuta sembolünü euroya [16742] malloc: yarış vəziyyəti: pthread_atfork (16975) localedata: LC_MESSAGES.yesexpr / noexpr: bütün lokalitələrdə yenidən başlanğıc [16983] localedata: postal_fmt% l və% n modifikatorlarına icazə verilmir [17565] localedata : pt_PT: yanlış (iş) həftəsi başlanğıcı [17899] math: [powerpc] floorl FE_DOWNWARD [17950] build ilə mənfi sıfır qaytarır: Build ilə uğursuzluq [18205] localedata: be_BY *: yanlış birinci həftə və birinci gün [18433] libc : posix_spawn localedata [18453] icra edilməməsi üzərinə düzgün qaytarılmır: charmaps / IBM875: səhv kodlar [18712] string: bit / string2.h ilə uyuşmadığı -O2 -Werror = dolu -Wystem-headers [18896] localedata: he_IL: valyutanın təkmilləşdirilməsi [18911] localedata: ro_RO: Rumın dilindəki məlumatlara görə "Salı" üçün həftənin gününün dəyişdirilməsi [18960] local: s390: _nl_locale_subfreeres misaligned simvol üzərində larl opcode istifadə edir [19056] libc: Deprecate readdir_r [19133] localedata: pt_ *: gün & amp; [19198] localedata: nl_NL: Holland dili üçün [19257] şəbəkə üçün kiçik təkmilləşdirmələr: __res_vinit-də IPv6 adları serverləri ilə (CVE-2016-5417) yaranan yaddaş sızıntısı [19269] qurmaq: tst-audit4 və [19400] ltd: "iso-639.def" in içindəki boşluq, [19431] malloc: fflush, getdelim və fork [19505] libc arasında dayanıqlıq: RTLD_NEXT [19512] locale istifadə edərkən səhvlər barədə məlumat vermir: 'intif / {gettextP' in içindəki '#ifndef HAVE_BUILTIN_EXPECT' 'səhv fayl təsvirçisinin etibarlılıq yoxlamaları posix_spawn_file_actions_add {open, close, dup2} [19509] dinamik link: dlsym, dlvsym , loadinfo}.[19534] libc: execle, execlp, malloc [19568] localedata kullanabilir: * _CH: İsveçliler yerel haftada [19573] ağa katılımsız bir başlangıç var: Res_nclose ve __res_maybe_init, Hesiod'un [19575] localedata: [19592] matematikası: [ldbl-128ibm] qeyri-default yuvarlaqlaşdırma rejimlərində yanlışdır [19593] [1]. [ldbl-128ibm] qeyri-default yuvarlaqlaşdırma rejimlərində yanlış yanlış [19594] riyaziyyat: [ldbl-128ibm] qeyri-default yuvarlaqlaşdırma rejimlərində yanlış [19595] matematik: [ldbl-128ibm] fmodl subnormal ikili aralık [19602] matematik: [ldbl-128ibm] fmodl bərabər argumentlərin aşağı hissəsi ilə sıfır yanlış idarə [19603] math: [ldbl-128ibm] remainderl, bərabərlik testlərində səhv işarələrin rəddini [19610] dinamik link: ldconfig - X köhnə sembolik linkləri [19613] libc: s390x rədd edir (64 bit) makro genişləndirilməsi WCOREDUMP və başqaları [19633] local: strfmon_l ümumi formatı rəqəm formatlamasına tətbiq edir [19642] şəbəkə: Getnameinfo [19648] libc: yaddaş-skeleton.c: RLIMIT_DATA [19653] libc: Glibc-2.22 [19654] matrisinde NULL gösterici dereference (CWE-476) potansiyeli ayarlanmaz: [x86_64] BZ # 19590 düzeltme için test sinyali gerekir [19671] localedata: malloc eksik Sanity Check () 'tst-fmon.c' & amp; [19674] matematik: [ldbl-128ibm] notu yanlış taşma işlemi [19677] matematik: [ldbl-128ibm] sıfır düşük kısım için yanlış eşitlik testi [19678] matematik: [ldbl-128ibm] nextafterl [19679] dinamik-link: gcc-4.9.3 Cs ++ istisna işarəsi halsız yığın [19726] Yerel: UCS4LE'yi İÇİD'e çevirmək iconv () ilə səhv vəziyyətdə göstəriciləri və uzunluğu yeniləmir . [19727] localv: iconv () ilə UTF-xx-ə çevrilməsi həmişə UTF-16 surqant dəyərlərində səhvlər barədə məlumat vermir.[19755] dinamik link: HAS_CPU_FEATURE / HAS_ARCH_FEATURE [19758] dinamik bağlantı: nscd [19758] dinamik bağlantı: nscd onaylama hatası x86-64 [19759] libc: mempcpy'nin [19762] inline edilmemesi üçün EXTRA_LD_ENVVARS ' 19765] libc: s390 optimize edilmiş mempcpy [19779] glob: glob: GLOB_ALTDIRFUNC ilə tampon daşıması yanlış NAME_MAX məhdud proqnozu səbəbindən (CVE-2016-1234) [19783] qurmaq lazımdır: benchtests dəstəkləmir - ola bilər-hardcoded-path [19787] şəbəkə: Getnameinfo [19790] matematik: [ldbl-128ibm] yanlış və yanlış kəsilmə yoxlamaları [19791] qeyri-default yuvarlaqlaşdırma rejimlərində yanlış yanlış: res_query.c-də bağlanılmayan adı ilə təsdiqləmə qüsuru server ünvanları [19792] libc: MIPS: backtrace makecontext ilə sonsuz backtrace verir [19822] math: libm.[19825] şəbəkə: nss_dns: getaddrinfo qarşılaşdıqda təkrarlanmayan məlumatları qaytarır: [1] [1] şəbəkə: oldversion [19825] şəbəkə: resolv: send_vc, ikinci çağırışda getaddrinfo [19830] şəbəkəsində nats_dns: RDATA uzunluğunu yoxlamalıdır. A / AAAA-nın etibarsız ölçüsünün qeydləri [19837] nss: nss_db: Daha böyük bir tampon ilə [19848] math: powl (10, n) n = -4, -5, -6, -7 1-dən çox ULP-lə bağlıdır [19853] stdio: IBM yüksək dəqiqliklə decimalda ikiqat cütləşdirmək bəzən səhvdir [19860] qurmaq: x86_64: tst-audit10 və tst-auditmod10b [19861] nptl üçün kompilyasiya səhvləri tərtib edir: libpthread fors üçün IFUNC resolver [19862] şəbəkə: resolv, nss_dns: Qeyri-gözlənilməz qeydlər [19865] şəbəkəsinin qeydə alınmasını aradan qaldırın: _nss_dns_getcanonname_r [19868] şəbəkəsində qeydə alınmamışdır və ya yaddaş sızıntısı: nss_dns: netent kodu PTR olmayan qeydlərdən keçmir [ 19879] şəbəkəsi: nss_dns: Getnetbyname proqramında daşma yığın (CVE-2016-3075) [19881] string: Improve x86-64 memset [19907] string: Yanlış memcpy testleri [19916] dinamik bağlantı: S390: fprs / vrs simgeleri çözerken kaydedilmez / geri yüklenmez [19925] libc : termios.h XCASE ad sahəsi [19928] string: memmove-vec-unaligned-erms.[19929] stdio: yaddaşda sızma [19957] libc: clone (CLONE_VM) geçersiz ebeveyn belleğine erişimi [19963] localedata: en_IL: Yeni Yerleşim [19989] libc: limits.h NL_NMAX ad alanı [19929] ] stdio: stdio.h cuserid ad boşluğu [19994] şəbəkə: getaddrinfo gethosts ildə RES_USE_INET6 bayraq bərpa deyil [19996] local: langinfo.h nl_langinfo_l namespace [20005] stdio: fmemopen resets ilə açılmış bir faylda fflush 0 [20010] [20012] stdio: libio: fmemopen append modu başarısız [20014] stdio: stdio.h adları ön planda üçün POSIX [20017] ağ adresi: resolv: gmtime_r istifadə edin: hostadd translation (CVE-2016-3706) [20023] libc: fcntl.h timespec ad boşluğu [20024] matematik: [x86_64] vektorlanmış sincos yığını [20031] şəbəkə: nss_hesiod: get_txt_records [20041] vaxtında yığın daşması: sys / time.h timespec ad boşluğu [20043] libc: unistd.h UNIX98 üçün cuserid və əvvəl [20044] libc: unistd .h UNIX98 üçün pthread_atfork [20051] libc: ttyslot səhv başlıq altında yanlış şəraitdə [20054] libc: gethostname XPG4 üçün elan edilməmişdir [20055] libc: termios.[20072] libc: sys / stat.h fchmod namespace [20074] libc: stdlib.h rand_r ad boşluğu [20076] libc: sys / stat [20072] dinamik bağlantı: x86 init_cpu_features statik çalıştırılabilir iki dəfə çağırılır [20072] .h eksik S_IFSOCK, XP_4 üçün S_ISSOCK [20094] libc: stdlib.h, grantgt, ptsname, XPG3 üçün unlockpt [20111] libc: struct sockaddr_storage ümumi kopyalanamaz [20112] şəbəkə: sunrpc: yığın (çərçivə) daşması [20115] string: Əlavə olmayan hizalanma memset-vec-unaligned-erms.S [20119] libc: CPUID-dən prosessor səviyyəsinin tipi üçün səhv maska [20139] dinamik keçid: Üst hissə Glibc AS ilə dəstəklənirsə zmm sıfırlanır: AVX512 [20151] math: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l sNaN arqumenti üçün sNaN [20153] math: [ldbl-128ibm] sqrtl (sNaN) sNaN [20156] matematikanı qaytarır: [ldbl-128ibm] ceill, rintl və sNaN arqumenti üçün sNaN [20157] matematik: [powerpc] fabsl (sNaN) səhv "invalid" [20160] math: [p owerpc] ceil, rint və s.sNaN giriş üçün geri sNaN [20178] libc: posix_spawn {p} exit çağırmamalıdır [20191] stdio: libio: vtables hardening [20195] string: FMA4 aşkarlanması CPUID-in icrası ilə eax = 0x80000001 [20198] libc: quick_exit yanlış şəkildə məhv C ++ 11 mövzu obyektləri. [20205] matematik: [i386 / x86_64] nextafterl yanlış artımlı mənfi subnormals [20212] math: acos (sNaN) sNaN [20213] matematik: asin (sNaN) sNaN [20214] şəbəkəsini qaytarır: linux / in6 ilə Linux başlığı sinxronizasiya. h və ipv6.h yenidən.[20218] matematik: [i386] asinhl (sNaN) returns sNaN [20219] math: [i386] atanhl (sNaN) returns sNaN [20222] stdio: fopencookie: Mangle function pointers [20224] math: [i386] cbrtl (sNaN) sNaN girişi üçün sNaN [20225] math: ldexp, scalbn, scalbln return sNaN girişi [20226] math: [i386 / x86_64] expl, exp10l, expr1l sNaN girişi için sNaN [20227] math: [i386 / x86_64] logl (sNaN sNaN [20228] matematik: [i386 / x86_64] log10l (sNaN) sNaN [20229] math: [i386 / x86_64] returns sNaN [20232] math: [ldbl-128] expm1l (sNaN) returns sNaN [20233] math: [ldbl-128ibm] returns sNaN [20234] math: [ldbl-128ibm] log1pl (sNaN) returns sNaN [20235] math: [i386 / x86_64] log2l (sNaN) returns sNaN [ [20240] math: modf (sNaN) qaytarır sNaN [20248] libc: debug / tst-longjump_chk2 bir print işleyicisinden printf çağırır [20250] math: frexp (sNaN sNaN [20252] matematikanı qaytarır: atan2 (sNaN, qNaN) "etibarsızdır" [20255] [i386] fdim, fdimf, artıq və həssas / ikiqat yuvarlaqlaşdırma ilə döndürülür [20256] matematik: [i386 / x86_64] fdiml sNaN girişi üçün sNaN döndürür [20260] string: ../sysdeps/x86/bits/string.
h: 1092: 3: səhv: array alt dizisi array sınırlarının altındadır [-Werror = array-bound] [20262] nis: _nss_nis_initgroups_dyn her zaman NSS_STATUS_NOTFOUND [20263] nptl'yi döndürür: diğer thread istekleri timedlock / linux) [20277] libc: $ dp sysdeps / hppa / start.S [20284] malloc: malloc: Corrupt arena aradan qaldırılması lazımsız mmap fallbacks [20296] math: [i386 / x86_64] scalbl üçün sNaN [20314] nptl: make [4]: *** [/usr/include/stdlib.h] Error 1 [20316] localedata: id_ID: Februari yerine Pebruari [20327] string: POWER8 libc: FAX: misc / tst-preadvwritev64 [20349] libc: 64-bit değeri p {readv, writev} içinde farklı bir şekilde geçirilir. [20347] math: Başarısızlık: Test: j0_downward (0xap + 0) [20348] {64} [20350] libc: p {read, write} 64 [20357] math üçün heç bir test yoxdur: 1.5174239687223976 üçün səhv cos nəticə: [20384] qurmaq: libmvec-sincos-avx * achines
Yeni versiyası 2.23:
- CVE-2015-7547: glibc getaddrinfo () yığını əsaslı bufer daşması - Glibc 2.23 versiyası üçün inkişaf sahəsinə bağlıdır.
Yeni versiyası 2.21:
- Aşağıdakı hatalar bu azad ilə həll edilir: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17637, 17371, 17411, 17363, 17370, 17371, 17411, 17363, 17370, 17371, 17192, 17266, 17743, 17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17625, 17630, 17633, 17634, 17635, 17630, 17633, 17634, 17635, 17719, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885, 17892.
- CVE-2015-1472 Belirli koşullar altında wscanf, taranmış argümanlar üçün çox az yaddaş ayırabilir ve ayrılan tamponu taşıyabilir. Proqram malloc istifadə edildikdə indi tələb olunan bufer ölçüsünü doğru hesablayır.
- Bütün maşınlar üçün ümumi C kodunda yeni semafor alqoritmi tətbiq edilmişdir. Semaforun əvvəlki fərdi toplaşmalarının tətbiqi çətin idi və ya təhlükəsiz olduğundan əmin idi. Semaforun yeni versiyası 64 bit və ya 32 bitlik atom əməliyyatları olan maşınları dəstəkləyir. Yeni semafor alqoritmi sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait və sem_getvalue tərəfindən istifadə olunur.
- Altera Nios II limanına Mentor Graphics tərəfindən qatılmışdır.
- Optimize strcpy, stpcpy, strncpy, stpncpy, strcmp və powerpc64 / powerpc64le üçün strncmp tətbiqləri. Adhemerval Zanella (IBM) tərəfindən həyata keçirilir.
- powerpc32, powerpc64 və powerpc64le üzərindəki pthread mutexes-in TSX kilidlənməsinə dəstək əlavə edildi. Bu, HTM-də işləyən sistemlərdə mövcud proqramların kilit ölçüsünü inkişaf etdirə bilər. Qala kilidləmə kodu yalnız --enable-lock-elision = yes ilə effektivdir. Həmçinin, powerpc üçün TSX kilidi tənzimləmə tətbiqləri əməliyyatlar xaricində görünən yan təsirlərin qarşısını almaq üçün hər syscallda əməliyyat dayandırmasını təmin edəcək.
- AArch64 üçün optimaldır strcpy, stpppy, strchrnul və strrchr tətbiqləri. ARM Ltd tərəfindən dəstəklənir.
- SSE2 yüklənməmiş yük / mağaza ilə optimallaşdırılmış i386 memcpy funksiyaları.
- CVE-2104-7817 Wordexp funksiyası tətbiqi tələb etmədikdə komanda əvəzi üçün bir qabığın icrasına gətirib çıxaran müəyyən giriş şərtləri altında WRDE_NOCMD bayrağını görməməz ola bilər. Tətbiq artıq qabığın yerinə yetirilməsindən dərhal əvvəl WRDE_NOCMD-i yoxlayır və gözlənildiyi kimi WRDE_CMDSUB səhvini qaytarır.
- CVE-2012-3406 printf-stil funksiyaları, çoxlu sayda format göstəricisi olan format stringlərini işləyərkən yığma daşımaya axın edə bilər.
- CVE-2014-9402 DNS cavabında gözlənilməz formatın bir PTR qeydiyyatı olsaydı, getnetbyname-in nss_dns tətbiqinin sonsuz bir dövrə keçməsi mümkündür.
- GNU C Kitabxanasının bu versiyasını yaratmaq üçün istifadə edilə bilən minimum GCC versiyası GCC 4.6 təşkil edir. Daha eski GCC sürümleri ve GNU olmayan derleyiciler, GNU C Kitabxanasını istifadə edərək, proqramları tərtib etmək üçün istifadə edilə bilər.
- GNU C Kitabxanası artıq qurulmuşdur -Sözüm default. - disable-werror ilə konfiqurasiya etməklə aradan qaldırıla bilər
- Yeni yerlər: tu_IN, bh_IN, raj_IN, ce_RU.
- Köhnəlmiş sigvec funksiyası silindi. Bu, proqramların təxminən 25 ildir istifadə etdiyi POSIX.1 sigaction interfeyinə ilham verən orijinal 4.2BSD interfeysi idi. Əlbəttə ki, sigvec istifadə köhnə ikili üçün ABI uyğunluğu qalıb.
- Intl alt qovluğa gettext 0.19.3 birləşdi. Bu, bizonun yeni versiyaları ilə bina qurur.
- MIPS o32 FPXX, FP64A və FP64 ABI Extensions üçün dəstək. Orijinal MIPS o32 sərt float ABI cüt hassasiyetli qeydiyyatdan iki ardışık tək dəqiqlikli qeydiyyatdan keçən bir FPU tələb edir. MIPS32R2 yeni bir FPU rejimi (FR = 1) təqdim etdi, burada cüt dəqiqlikli qeydlər o32 sərt float ABI ilə uyğun olmayan müvafiq bir dəqiqlikli qeydiyyatdan uzanır. MIPS SİMD ASE və MIPSR6 arxitekturası, həm də lazımlı bir keçiş edən FR = 1 istifadə tələb edir. Yeni o32 ABI uzantıları, istifadəçilərə orijinal o32 ABI-dən vaxt keçdikcə yenilənmiş o32 FP64 ABI-yə köçürməyə imkan verir. Buna nail olmaq üçün dinamik bağlayıcı indi hər hansı yüklənmiş obyektin ABİ-ni izləyir və yeni obyektlərin uyğun olduğunu sübut edir. Mode keçidləri də tələb olunacaq və dəstəklənməyən obyektlər rədd ediləcəkdir. ABI çekləri o32, n32 və n64 üçün yumşaq və sərt float ABIs daxildir.
Şərhlər tapılmadı