GNU C Library

Yazılım ekran görüntüsü:
GNU C Library
Yazılım detaylar:
Versiyon: 2.28 Güncelenir
Qayıt: 16 Aug 18
Geliştirici: Roland McGrath
Lisans: Ücretsiz
Popülerlik: 16

Rating: 3.0/5 (Total Votes: 2)

GNU C Kütüphanesi , herhangi bir GNU / Linux dağıtımı için açık kaynaklı, ücretsiz ve güçlü bir kütüphane yazılımıdır. Ayrıca Glibc olarak bilinir ve herhangi bir UNIX benzeri bilgisayar işletim sistemi için gereklidir. GNU C Kütüphanesi, sistem çağrılarını ve malloc, open, exit, printf, vb. Gibi çeşitli diğer temel işlevleri tanımlamaktan sorumludur.


Tüm Linux kernel tabanlı işletim sistemlerinde varsayılan olarak kullanılır

GNU C Kütüphanesi, GNU sistemlerinde ana C kütüphanesi ve Linux çekirdeği tarafından desteklenen herhangi bir başka işletim sistemi olarak hareket etmek üzere sıfırdan tasarlanmış tüm Linux çekirdeği tabanlı işletim sisteminde varsayılan olarak yüklenir ve kullanılır.


Taşınabilir olacak şekilde tasarlandı

Glibc, C programlama dilinde tamamen yazılmış yüksek performanslı bir C kütüphanesidir. POSIX.1-2008 ve ISO C11 dahil olmak üzere tüm ilgili standartları desteklemek için portatif, uluslararası ve mühendislik olarak tasarlanmıştır.


İyi bilinen UNIX varyantlarının özelliklerini destekler

GNU C Kütüphanesi tamamen uluslararası bir arayüze sahipken, yerleşik uyumluluk modları sayesinde BSD ve System V gibi iyi bilinen UNIX varyantlarının özelliklerini desteklemeye çalışır.

GNU C Kitaplığı ile Başlarken

GNU C Kütüphanesi, hemen hemen tüm GNU / Linux işletim sistemlerinde varsayılan olarak yüklenirken, kendi web sitesinde veya Softoware'de dağıtılan kaynak paketini kullanarak kendinizi yeniden yükleyebilirsiniz. Başlamak için arşivi Ana dizininizden indirin ve kaydedin.

Arşivi bir arşiv yöneticisi yardımcı programıyla açın, bir terminal penceresi açın, arşiv dosyalarının çıkarıldığı konuma gidin, & lsquo; ./ configure & rsquo; Programı yapılandırmak için komut (çeşitli optimizasyon seçenekleri için & lsquo; ./ configure --help & rsquo; komutuna bakın).

Ardından & lsquo; make & rsquo; & lsquo; 'ın install & rsquo; işlevini çalıştırarak sistem genelinde yüklenebilen kütüphaneyi derleme komutu veya & quot; sudo make install & rsquo; Kökünüze veya ayrıcalıklı bir kullanıcıya bağlı olarak komutlar.

Bu sürümdeki yeni :

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Sürüm 2.27’de yeni: :

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Sürümde yeni: :

  • GNU C Kitaplığı'nın bu sürümünün kullanabileceği minimum Linux çekirdeği sürümü, i [4567] 86 ve x86_64 dışında, Linux çekirdek sürümü 2.6.32 veya daha sonraki sürümlerde (çekirdek için gerekli olan mimarilerde) yeterlidir. 3.2'den daha yeni sürümler, bu gereksinimler değişmeden kalır). Tüm mimarilerde Linux 3.2 veya üstü çekirdek başlıkları gereklidir.
  • Pap_AN yerel ayarı silindi. Bu uzun bir süre için kullanımdan kaldırıldı. Bu, pap_AW & amp; pap_CW, her ikisi de daha önceki sürümlere dahil edilmiştir.
  • readdir_r ve readdir64_r işlevleri kullanımdan kaldırıldı. Bunun yerine readdir ve readdir64 kullanılması önerilir.
  • "Birlik beklemesi" türü kaldırıldı. 1990'ların başında kullanımdan kaldırıldı ve hiçbir zaman POSIX'in bir parçası değildi. Uygulama kodu "union wait" yerine int türünü kullanmalıdır.
  • Geniş dağıtılmış sistem yönetimini kolaylaştırmak için yeni bir NSS eylemi eklendi. Eylem, MERGE, kullanımı kolay, güncellenmiş ve yönetilen birleştirilmiş kimlik kümeleri seti sağlamak için LDAP gibi uzak kullanıcı mağazalarının / etc / grupları gibi yerel kullanıcı mağazalarında birleştirilmesine olanak tanır. Yeni eylem, /etc/nsswitch.conf dosyasında yapılandırılarak kullanılabilir: grup: dosyalar [SUCCESS = birleştirme] nis Stephen Gallagher (Red Hat) tarafından uygulandı.
  • Kullanımdan kaldırılmış __malloc_initialize_hook değişkeni API'den kaldırıldı.
  • Kullanılmayan localedef --old stili seçeneği kaldırıldı. 16 yıldan fazla bir şey yapmadı. Bu seçeneği kullanan komut dosyaları güvenle bırakabilir.
  • nextupl, nextup, nextupf, nextdownl, nextdown ve nextdownf libm'ye eklenir. Bunlar TS 18661 ve IEEE754-2008 tarafından tanımlanmıştır. Bir sonraki fonksiyonlar, bir sonraki gösterilebilir değeri pozitif sonsuzluk yönünde döndürür ve bir sonraki geri sayım fonksiyonları, bir sonraki gösterilebilir değeri negatif sonsuzluk yönünde döndürür. Bunlar şu anda GNU uzantıları olarak etkin durumda.
  • Güvenlikle ilgili değişiklikler:
  • _nss_dns_getnetbyname_r dosyasında gereksiz bir yığın kopyası kaldırıldı. Getnetbyname aşırı uzun bir adla çağrıldığında yığın taşmasıyla sonuçlanabilir. (CVE-2016-3075)
  • Önceden, getaddrinfo CVE-2013-4458 düzeltmesi uygulandıktan sonra bile yığın yığınına neden olarak büyük miktarlarda adres verisini yığına kopyaladı. getaddrinfo artık bunun yerine bir yığın ayırma kullanıyor. Michael Petlan tarafından bildirildi. (CVE-2016-3706)
  • Glob işlevi, GLOB_ALTDIRFUNC bayrağıyla çağrıldığında ve uzun bir dosya adıyla karşılaşıldığında yığın tabanlı bir arabellek taşması sorunu yaşadı. Alexander Cherepanov tarafından bildirildi. (CVE-2016-1234)
  • Sun RPC UDP istemcisi, hazırlanmış ICMP ve UDP iletileriyle dolu olduğunda kullanılabilir tüm yığın alanını tüketebilir. GCC için Aldy Hernandez 'alloca eklentisi tarafından bildirildi. (CVE-2016-4429)
  • Libresolv içindeki IPv6 ad sunucusu yönetim kodu, oluşturulan her iş parçacığı için bir bellek sızıntısına neden olabilir, başarısız bir adlandırma araması gerçekleştirir ve çıkar. Zamanla bu, bellek tükenmesi nedeniyle hizmet reddine neden olabilir. Matthias Schiffer tarafından bildirildi. (CVE-2016-5417)
  • Bu sürümde aşağıdaki hatalar çözüldü:
  • <>[1170] localedata: ne_NP: Nepali yerel tanım dosyasını güncelle [3629] manual: string.texi dosyasındaki stpcpy tanımı, MS-DOS yerine MS-DOG anlamına gelir. [6527] malloc: [powerpc] PowerPC için Malloc hizalaması yetersiz [6796] math: fdim () taşmayı errno olarak ayarlamaz [10354] libc: posix_spawn, şu andan itibaren [11213] localedata: localedata'dan daha çok durumda vfork () kullanmalıdır: yerel dosyalara telif hakkı sorumluluk reddi beyanı ekle [12143] localedata: chr_US: yeni Cherokee yerel ayar [12450] localedata: sgs_LT: yeni yerel ayar [12676] localedata: ln_CD: yeni yerel ayar [13237] localedata: LC_ADDRESS.country_name: tüm yerelleri güncelle w / latest CLDR data [13304] math: fma, fmaf, fmal yanlış sonuç üretir [14259] build: --localedir arg yapılandırması yoksayılır [14499] nptl: posix_spawn atfork handlers / use vfork'u çağırır mı? [14750] libc: posix_spawn vfork kullanımında yarış koşulları vs sinyal işleyicileri [14934] localedata: es_CL: yanlış ilk hafta içi Şili yerel ayarı [15262] localedata: LC_MESSAGES.yesexpr / noexpr: rutinleştirmenin tutarsız kullanımı [15263] localedata: LC_MESSAGES.yesexpr / noexpr: tutarsız kullanımı 1/0 ve +/- [15264] localedata: LC_MESSAGES.yesstr / nostr: birçok lokusta yok [15368] nptl: yükselt () async-sinyal güvenli değil [15479] matematik: ceil, kat, yuvarlak ve trunk kalkışı istisna [15578] localedata: kk_KZ: çeşitli güncellemeler [16003] localedata: pap_AN: punt eski yerel ayar [16137] localedata: iw_IL: eski çağlayan yer [16190] localedata: eo: new esperanto yerel ayar [16374] localedata: lv_LV: para birimi sembolünü euro cinsinden söndürün [16742] malloc: yarış durumu: pthread_atfork () önce denilen malloc () beklenmedik kilitlenme davranışı / çıkmazlarla sonuçlanır [16975] localedata: LC_MESSAGES.yesexpr / noexpr: tüm yerellerde tekrar büyük harf kullanımı [16983] localedata: postal_fmt% l ve% n değiştiricilere izin vermiyor [17565] localedata : pt_PT: yanlış (work-) hafta başlangıcı [17899] math: [powerpc] floorl, FE_DOWNWARD [17950] build ile negatif sıfır döndürüyor: Build -msse ile başarısız oluyor [18205] localedata: be_BY *: yanlış first_weekday ve first_workday [18433] libc : posix_spawn, [18453] localedata yürütme başarısız olduğunda doğru şekilde geri dönmez: charmaps / IBM875: yanlış kodlar [18712] string: bit / string2.h-ile uyumlu değil -O2 -Werror = paketlenmiş -Wsystem-headers [18896] localedata: he_IL: para birimi için geliştirmeler [18911] localedata: ro_RO: Rumence yerel ayarlarında "Salı" için hafta içi ismin düzeltilmesi [18960] yerel ayar: s390: _nl_locale_subfreeres yanlış hizalanmış sembolde larl opcode kullanır [19056] libc: Deprecate readdir_r [19133] localedata: pt_ *: days & amp; aylar Portekizce dilinde küçük harfle yazılmalıdır [19198] localedata: nl_NL: Hollanda yerelleri için küçük geliştirmeler [19257] ağ: IPv6 ad sunucularıyla birlikte __res_vinit cinsinden her bir bellek sızıntısı (CVE-2016-5417) [19269] build: tst-audit4 ve tst-audit10 non-avx makinede gcc-6 ile hatalar [19400] locale: "iso-639.def" dilinde eksik, tanımdaki önemsiz düzeltme [19431] malloc: fflush, getdelim ve fork [19505] libc arasındaki kilitlenme: Hatalı dosya tanıtıcı geçerlilik denetimi posix_spawn_file_actions_add {açık, kapat, dup2} [19509] dinamik bağlantı: dlsym, dlvsym RTLD_NEXT [19512] kullanılırken dreator aracılığıyla hata bildirme hatası: # intr / #tendef HAVE_BUILTIN_EXPECT 'in intl / {gettextP } loadinfo.h '[19534] libc: execle, execlp malloc kullanabilir [19568] localedata: * _CH: İsviçreli yereller haftanın tutarsız başlangıcı [19573] ağ: res_nclose ve __res_maybe_init ad sunucusu başlatılması konusunda anlaşmazlık, Hesiod [19575] localedata: Status GB18030 tabloları [19581] localedata: sr_ * date_fmt dizesi yeni satır içerir [19583] string: SSSE3_Fast_Copy_Backward bayrağı, AMD Ekskavatör çekirdeği [19592] matematik için: [ldbl-128ibm] standart olmayan yuvarlama modlarında yanlış olarak etkinleştirilmelidir [19593 ] matematik: [ldbl-128ibm] truncl varsayılan olmayan yuvarlama modlarında yanlış [19594] matematik: [ldbl-128ibm] varsayılan olmayan yuvarlama kipinde yanlış yuvarlak [19595] matematik: [ldbl-128ibm] fnorl altnormal sonuçlarda yanlış çift ​​aralık [19602] matematik: [ldbl-128ibm] düşük bölüm sıfır yanlış [19603] matematik: [ldbl-128ibm] kalan argümanlar ile eşit argümanların fmodl işleme eşitlik testleri [19610] dinamik-link: ldconfig - remquol yanlış işaret işleme X eski sembolik bağları kaldırır [19613] libc: s390x (64 bit) makro genişletme WCOREDUMP ve diğerleri [19633] yerel ayar: strfmon_l, global yerel sayıyı sayı biçimlendirmesine uygular [19642] ağ: getnameinfo'daki bellek sızıntısı [19648] libc: test-iskelet.c: RLIMIT_DATA ayarlamayın [19653] libc: glibc-2.22 [19654] matematikteki NULL işaretçi dereference (CWE-476) için potansiyel: [x86_64] BZ # 19590 düzeltmesi için test karesine ihtiyaç var [19671] localedata: Malloc için Eksik Sanity Kontrolü () 'tst-fmon.c' & amp; 'tst-numeric.c' [19674] matematik: [ldbl-128ibm] powl yanlış taşma işlemi [19677] matematik: [ldbl-128ibm] sıfır sıfır bölüm için kalan eşitlik testi [19678] matematik: [ldbl-128ibm] nextafterl , nexttowardl sıfır sonucu sıfır işareti [19679] dynamic-link: gcc-4.9.3 C ++ kural dışı yığın nedeniyle kırık istisna işleme [19726] locale: iconv () ile iç içe UCS4LE dönüştürme hata durumunda işaretçileri ve uzunlukları güncelleştirmez . [19727] yerel ayar: iconv () ile UTF-xx arasında dönüştürme / dönüştürme, her zaman UTF-16 belirten değerlerindeki hataları bildirmez.[19755] nscd: gc'de (19758) nscd onaylama hatası dinamik bağlantı: x86-64 [19759] için EXTRA_LD_ENVVARS içinde yazım hatası [19759] libc: mempcpy satır içi olmamalıdır [19762] dinamik bağlantı: HAS_CPU_FEATURE / HAS_ARCH_FEATURE kullanımı kolay değildir [ 19765] libc: s390, optimize edilmiş bir not defterine ihtiyaç duyar [19779] glob: glob: yanlış NAME_MAX limit varsayımından dolayı GLOB_ALTDIRFUNC ile arabellek taşması (CVE-2016-1234) [19783] build: benchtest'leri desteklemez --enable-hardcoded-path -in-tests [19787] ağ: getnameinfo [19790] matematikte eksik ve yanlış kesme denetimleri: [ldbl-128ibm] default olmayan yuvarlama kiplerinde yanlışılan yanlış [19791] ağ: bağlanılamaz adıyla res_query.c dosyasında onaylama hatası sunucu adresleri [19792] libc: MIPS: backtrace, makecontext ile sonsuz backtrace verir [19822] math: libm.Bu nedenle, eski sürüm [19825] ağını kur: resolv: send_vc, başlatılmamış veriyi, getaddrinfo [19830] ağına ikinci yanıt olarak döndürür: nss_dns: RDATA uzunluğunu arabellek uzunluğuna karşı kontrol etmelidir [19831] ağ: nss_dns: getaddrinfo, karşı karşıya geldiğinde başlatılmamış veriyi döndürür A / AAAA kayıtlarının geçersiz büyüklükleri [19837] nss: nss_db: Daha büyük bir arabelleğe sahip bazı uzun satırlar için tekrar denemesi yok [19848] math: powl (10, n) n = -4, -5, -6, -7 için 1'den fazla ULP [19853] stdio: Yazdırma IBM'in yüksek hassasiyetle ondalık ondalık iki katı bazen yanlıştır [19860] build: x86_64: tst-audit10 için derleme hataları ve tst-auditmod10b [19861] nptl: libpthread IFUNC resolver for fork çökmesine yol açabilir [19862] ağ: resolv, nss_dns: Beklenmeyen kayıt türlerinin kalan günlüğünü kaldır [19865] ağ: _nss_dns_getcanonname_r [19868] ağında onaylama hatası veya bellek sızıntısı [19868] ağ: nss_dns: net kod, PTR kayıtlarının üzerinden atlanmıyor [ 19879] network: nss_dns: getnetbyname uygulamasında yığın taşması tion (CVE-2016-3075) [19881] string: x86-64 memset'i geliştirin [19907] string: Yanlış memcpy testleri [19916] dynamic-link: S390: semboller çözülürken fprs / vrs kaydedilmez / geri yüklenmez [19925] libc : termios.h XCASE ad alanı [19928] dize: memmove-vec-unaligned-erms.S büyük veri büyüklüğü ile yavaştır [19929] libc: limits.h NL_NMAX ad alanı [19931] stdio: vfprintf [19957] bellek sızıntısı libc: clone (CLONE_VM) geçersiz ana belleğe erişme [19963] localedata: en_IL: Yeni yerel ayar [19989 ] stdio: stdio.h cuserid namespace [19994] network: getaddrinfo geri almaz RES_USE_INET6 gethosts bayrağı [19996] locale: langinfo.h nl_langinfo_l ad alanı [20005] stdio: fmemopen ile açılan bir dosyada fflush 0 konumuna geri getirilir [20010] network: getaddrinfo: Hostent çeviri yığın taşması (CVE-2016-3706) [20012] stdio: libio: fmemopen ekleme modu hatası [20014] stdio: pre-thread için stdio.h ad alanı POSIX [20017] network: resolv: Use gmtime_r p_secstodate içinde gmtime yerine [20023] libc: fcntl.h timespec ad alanı [20024] math: [x86_64] vektörlü sinekler yığın [20031] ağını çöker: nss_hesiod: get_txt_records [20041] 'te yığın taşması: sys / time.h timespec namespace [20043] libc: UNIX98 için unistd.h eksik cuserid ve daha önce [20044] libc: unistd .h UNIX98 için pthread_atfork eksik [20051] libc: yanlış koşullar altında yanlış başlıkta ttyslot [20054] libc: gethostname XPG4 [20055] libc: termios için bildirilmemiş.h XPG4 için tcgetsid eksik [20072] dinamik bağlantı: x86 init_cpu_features statik yürütülebilir iki kez çağrılır [20073] libc: sys / stat.h fchmod ad alanı [20074] libc: stdlib.h rand_r ad alanı [20076] libc: sys / stat .h eksik S_IFSOCK, S_ISSOCK XPG4 için [20094] libc: stdlib.h verilip verilmemelidir XPG3 [20111] libpt için pptname, unlockpt: libc: struct sockaddr_storage birlestirilemedi [20112] network: sunrpc: stack (frame) taşma Sun RPC'de clntudp_call (CVE-2016-4429) [20115] string: memset-vec-unaligned-erms.S [20119] dosyasında ekstra hizalama libc: CPUID'den işlemci türü için yanlış maske [20139] dinamik bağlantı: Üst kısım Eğer Glibc, AVX512 [20151] matrisini desteklemeyen AS ile oluşturulduysa sıfırdan sıfırlanır: [l3bl-128 / ldbl-128ibm] j0l, j1l, y0l, s1n dönüşü sNaN argümanı için [20153] matematik: [ldbl-128ibm] sqrtl (sNaN) sNaN [20156] matematik döndürür: [ldbl-128ibm] ceill, rintl vb sNaN sNaN argüman için geri dönüş [20157] matematik: [powerpc] fabsl (sNaN) yanlış "geçersiz" [20160] matematik artırır: [p owerpc] ceil, rint vb.sNaN girişi için sNaN döndür [20178] libc: posix_spawn {p} çıkış yapmamalı [20191] stdio: libio: vtables sertleştirme [20195] string: FMA4 saptaması registerID ile CPUID yürütmesini gerektirir = 0x80000001 [20198] libc: quick_exit yanlış şekilde yok eder C ++ 11 konu nesneleri. [20205] matematik: [i386 / x86_64] nextafterl yanlış artan negatif altnormaller [20212] math: acos (sNaN) sNaN döndürür [20213] math: asin (sNaN) sNaN [20214] ağını döndürür: linux / in6 ile Linux başlık senkronizasyonu. h ve ipv6.h tekrar.[20218] matematik: [i386] asinhl (sNaN), sNaN [20219] matematiğini döndürür: [i386] atanhl (sNaN), sNaN [20222] stdio döndürür: fopencookie: Mangle işlev işaretçileri [20224] math: [i386] cbrtl (sNaN) sNaN [20225] matematik döndürür: ldexp, scalbn, sNaN girişi için sNaN döndürme [20226] matematik: [i386 / x86_64] expl, exp10l, sNaN girişi için sNaN dönüş [20227] matematik: [i386 / x86_64] logl (sNaN ) sNaN [20228] döndürür: [i386 / x86_64] log10l (sNaN) döndürür sNaN [20229] matematik: [i386 / x86_64] log1pl (sNaN) döndürür sNaN [20232] matematik: [ldbl-128] expm1l (sNaN) döndürür sNaN [20233] matematik: [ldbl-128ibm] expm1l (sNaN) sNaN [20234] döndürür: [ldbl-128ibm] log1pl (sNaN) sNaN [20235] matematik döndürür: [i386 / x86_64] log2l (sNaN) sNaN döndürür [ 20237] nss: nss_db: önceki set olmadan * ent segfaults olsun * ent [20240] math: modf (sNaN) sNaN döndürür [20248] libc: debug / tst-longjump_chk2 bir sinyal işleyicisinden printf çağırır [20250] math: frexp (sNaN) ) sNaN [20252] matematiğini döndürür: atan2 (sNaN, qNaN) "geçersiz" [20255] th: [i386] fdim, fdimf geri dönüş aralığı ve hassasiyet / çift yuvarlama ile [20256] matematik: [i386 / x86_64] fdiml sNaN girişi için sNaN değerini döndürür [20260] string: ../sysdeps/x86/bits/string.

    h: 1092: 3: hata: dizi alt sınırı dizi sınırlarının altında [-Werror = dizi-sınır] [20262] nis: _nss_nis_initgroups_dyn her zaman NSS_STATUS_NOTFOUND döndürür [20263] nptl: diğer iş parçacığı zaman kilitlemesini isterse sağlam mutex deadlocks (Sadece kol / linux) [20277] libc: $ dp sysdeps / hppa / start.S'de doğru başlatılamıyor. [20284] malloc: malloc: Bozuk arena kaçınma gereksiz mmap geri dönüşlerine neden oluyor [20296] math: [i386 / x86_64] scalbl sNaN değerini döndürüyor sNaN girişi, "geçersiz" özel durumlar eksik [20314] nptl: make [4]: ​​*** [/usr/include/stdlib.h] Hata 1 [20316] localedata: id_ID: Pebruari yerine Februari [20327] string: POWER8 strcasecmp yanlış sonuç döndürüyor [20347] math: Failure: Test: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: 64-bit değeri p {readv, writev} biçiminde farklı şekilde iletildi {64} [20350] libc: p {read, write} 64 [20357] matematiği için test yok: 1.5174239687223976 [20384] için yanlış cos sonucu [20384] build: avm m'de libmvec-sincos-avx * testlerini çalıştırmayın achines

Sürüm 2.23’te yeni: :

  • CVE-2015-7547: glibc getaddrinfo () yığın tabanlı arabellek taşması - glibc 2.23 sürümü için geliştirme dalında düzeltildi.

Sürüm 2.21’de yeni: :

  • Aşağıdaki sürüm bu sürümle çözülür: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16618, 16619, 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 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, taranacak argümanlar için çok az bellek ayırabilir ve tahsis edilen arabelleğe taşabilir. Şimdi uygulama, malloc kullanırken gereken arabellek boyutunu doğru şekilde hesaplar.
  • Tüm makineler için genel C kodunda yeni bir semafor algoritması uygulandı. Semaforun önceki özel montaj uygulamalarının mantıklı olduğu ya da güvenli olduklarından emin olmaları zordu. Semaforun yeni versiyonu, 64-bit veya 32-bit atomik operasyonlara sahip makineleri desteklemektedir. Yeni semafor algoritması sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait ve sem_getvalue tarafından kullanılır.
  • Altera Nios II'ye giden Liman Mentor Graphics tarafından desteklenmiştir.
  • powerpc64 / powerpc64le için optimize edilmiş strcpy, stpcpy, strncpy, stpncpy, strcmp ve strncmp uygulamaları. Adhemerval Zanella (IBM) tarafından hayata geçirildi.
  • powerpc32, powerpc64 ve powerpc64le üzerinde pthread mutekslerinin TSX kilit seçimine destek eklendi. Bu, HTM özellikli sistemlerde mevcut programların kilitlenmesini geliştirebilir. Kilit seçim kodu sadece --enable-lock-elision = yes ile etkinleştirilir. Ayrıca, powerpc için TSX lock elision uygulaması, işlemlerin dışında görülebilen yan etkilerden kaçınmak için her syscall'da bir işlem iptal eder.
  • AArch64 için optimize edilmiş strcpy, stpcpy, strchrnul ve strrchr uygulamaları. ARM Ltd tarafından katılmıştır.
  • i386 memcpy işlevi, SSE2 hizalanmamış yük / mağaza ile optimize edildi.
  • CVE-2104-7817 Wordexp işlevi, WRDE_NOCMD bayrağını belirli giriş koşulları altında görmezden gelebilir ve bu durum, uygulama talebinde bulunmadığı zaman komut ikamesi için bir kabuğun yürütülmesine neden olur. Uygulama şimdi kabuğu yürütmeden WRDE_NOCMD'yi hemen denetler ve WRDE_CMDSUB hatasını beklendiği gibi döndürür.
  • CVE-2012-3406 printf stili işlevleri, çok sayıda biçim belirteci içeren biçim dizeleri işlenirken bir yığın taşmasıyla çalışabilir.
  • CVE-2014-9402 DNS yanıtı beklenmedik biçime sahip bir PTR kaydı içeriyorsa, getnsbyname uygulamasının nss_dns uygulaması sonsuz bir döngüye girebilir.
  • GNU C Kitaplığı'nın bu sürümünü oluşturmak için kullanılabilecek minimum GCC sürümü GCC 4.6'dır. Daha eski GCC sürümleri ve GNU olmayan derleyiciler, GNU C Kitaplığı'nı kullanarak programları derlemek için hala kullanılabilir.
  • GNU C Kütüphanesi artık varsayılan olarak -Werror ile oluşturulmuştur. Bu, --disable-werror ile yapılandırılarak devre dışı bırakılabilir.
  • Yeni bölgeler: tu_IN, bh_IN, raj_IN, ce_RU.
  • Eski sigvec işlevi kaldırıldı. Bu, hangi programların yaklaşık 25 yıldır kullandığı POSIX.1 sigaction arayüzüne ilham veren orijinal 4.2BSD arayüzüydü. Tabii ki, sigvec kullanan eski ikili dosyalar için ABI uyumluluğu bozulmadan kalır.
  • intl alt dizinine 0.19.3 olarak birleştirilmiş gettext. Bu, daha yeni bison sürümleriyle binaları onarır.
  • MIPS o32 FPXX, FP64A ve FP64 ABI Uzantıları için destek. Orijinal MIPS o32 sabit-yüzlü ABI, çift duyarlıklı yazmaçların iki ardışık tek hassasiyetli yazmaçları yerleştirdiği bir FPU gerektirir. MIPS32R2, çift duyarlıklı yazmaçların, o32 sert şamandıra ABI ile uyumsuz olan tekli hassas yazmaçları uzadığı yeni bir FPU modunu (FR = 1) ortaya çıkarmıştır. MIPS SIMD ASE ve MIPSR6 mimarisi, FR = 1'in kullanılmasını gerekli kılar. Yeni o32 ABI uzantıları, kullanıcıların orijinal o32 ABI'sinden güncelleştirilmiş o32 FP64 ABI'ya geçiş yapmalarını sağlar. Bunu başarmak için, dinamik bağlayıcı şimdi tüm yüklü nesnelerin ABI'sini izler ve yeni nesnelerin uyumlu olduğunu doğrular. Mod geçişleri de istenildiği gibi istenecek ve desteklenmeyen nesneler reddedilecektir. ABI çekleri o32, n32 ve n64 için hem yumuşak hem de sabit yüzer ABI'ları içerir.

Yorumlar GNU C Library

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!