5 | | * Unicode 8.0.0 Support: Character encoding, character type info, and |
6 | | transliteration tables are all updated to Unicode 8.0.0, using new |
7 | | and/or improved generator scripts contributed by Mike FABIAN (Red Hat). |
8 | | These updates cause user visible changes, such as the fixes for bugs |
9 | | 89, 16061, and 18568. |
10 | | |
11 | | * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess the |
12 | | kernel-internal CPU set size. This means that requests that change the |
13 | | CPU affinity which failed before (for example, an all-ones CPU mask) will |
14 | | now succeed. Applications that need to determine the effective CPU |
15 | | affinities need to call sched_getaffinity or pthread_getaffinity_np after |
16 | | setting it because the kernel can adjust it (and the previous size check |
17 | | would not detect this in the majority of cases). |
18 | | |
19 | | * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64. With LFS |
20 | | the following new symbols are used: fts64_children, fts64_close, |
21 | | fts64_open, fts64_read and fts64_set. |
22 | | |
23 | | * getaddrinfo now detects certain invalid responses on an internal netlink |
24 | | socket. If such responses are received, an affected process will |
25 | | terminate with an error message of "Unexpected error <number> on netlink |
26 | | descriptor <number>" or "Unexpected netlink response of size <number> on |
27 | | descriptor <number>". The most likely cause for these errors is a |
28 | | multi-threaded application which erroneously closes and reuses the netlink |
29 | | file descriptor while it is used by getaddrinfo. |
30 | | |
31 | | * A defect in the malloc implementation, present since glibc 2.15 (2012) or |
32 | | glibc 2.10 via --enable-experimental-malloc (2009), could result in the |
33 | | unnecessary serialization of memory allocation requests across threads. |
34 | | The defect is now corrected. Users should see a substantial increase in |
35 | | the concurent throughput of allocation requests for applications which |
36 | | trigger this bug. Affected applications typically create create and |
37 | | destroy threads frequently. (Bug 19048 was reported and analyzed by |
38 | | Ericsson.) |
39 | | |
40 | | * There is now a --disable-timezone-tools configure option for disabling the |
41 | | building and installing of the timezone related utilities (zic, zdump, and |
42 | | tzselect). This is useful for people who build the timezone data and code |
43 | | independent of the GNU C Library. |
44 | | |
45 | | * The obsolete header <regexp.h> has been removed. Programs that require |
46 | | this header must be updated to use <regex.h> instead. |
47 | | |
48 | | * The obsolete functions bdflush, create_module, get_kernel_syms, |
49 | | query_module and uselib are no longer available to newly linked binaries; |
50 | | the header <sys/kdaemon.h> has been removed. These functions and header |
51 | | were specific to systems using the Linux kernel and could not usefully be |
52 | | used with the GNU C Library on systems with version 2.6 or later of the |
53 | | Linux kernel. |
54 | | |
55 | | * Optimized string, wcsmbs and memory functions for IBM z13. |
56 | | Implemented by Stefan Liebler. |
57 | | |
58 | | * Newly linked programs that define a variable called signgam will no longer |
59 | | have it set by the lgamma, lgammaf and lgammal functions. Programs that |
60 | | require signgam to be set by those functions must ensure that they use the |
61 | | variable provided by the GNU C Library and declared in <math.h>, without |
62 | | defining their own copy. |
63 | | |
64 | | * The minimum GCC version that can be used to build this version of the GNU |
65 | | C Library is GCC 4.7. Older GCC versions, and non-GNU compilers, can |
66 | | still be used to compile programs using the GNU C Library. |
67 | | |
68 | | Security related changes: |
69 | | |
70 | | * An out-of-bounds value in a broken-out struct tm argument to strftime no |
71 | | longer causes a crash. Reported by Adam Nielsen. (CVE-2015-8776) |
72 | | |
73 | | * The LD_POINTER_GUARD environment variable can no longer be used to disable |
74 | | the pointer guard feature. It is always enabled. Previously, |
75 | | LD_POINTER_GUARD could be used to disable security hardening in binaries |
76 | | running in privileged AT_SECURE mode. Reported by Hector Marco-Gisbert. |
77 | | (CVE-2015-8777) |
78 | | |
79 | | * An integer overflow in hcreate and hcreate_r could lead to an |
80 | | out-of-bounds memory access. Reported by Szabolcs Nagy. (CVE-2015-8778) |
81 | | |
82 | | * The catopen function no longer has unbounded stack usage. Reported by |
83 | | Max. (CVE-2015-8779) |
84 | | |
85 | | * The nan, nanf and nanl functions no longer have unbounded stack usage |
86 | | depending on the length of the string passed as an argument to the |
87 | | functions. Reported by Joseph Myers. (CVE-2014-9761) |
88 | | |
89 | | * A stack-based buffer overflow was found in libresolv when invoked from |
90 | | libnss_dns, allowing specially crafted DNS responses to seize control |
91 | | of execution flow in the DNS client. The buffer overflow occurs in |
92 | | the functions send_dg (send datagram) and send_vc (send TCP) for the |
93 | | NSS module libnss_dns.so.2 when calling getaddrinfo with AF_UNSPEC |
94 | | family. The use of AF_UNSPEC triggers the low-level resolver code to |
95 | | send out two parallel queries for A and AAAA. A mismanagement of the |
96 | | buffers used for those queries could result in the response of a query |
97 | | writing beyond the alloca allocated buffer created by |
98 | | _nss_dns_gethostbyname4_r. Buffer management is simplified to remove |
99 | | the overflow. Thanks to the Google Security Team and Red Hat for |
100 | | reporting the security impact of this issue, and Robert Holiday of |
101 | | Ciena for reporting the related bug 18665. (CVE-2015-7547) |
102 | | |
103 | | The following bugs are resolved with this release: |
104 | | |
105 | | [89] localedata: Locales nb_NO and nn_NO should transliterate æøå |
106 | | [887] math: Math library function "logb" and "nextafter" inconsistent |
107 | | [2542] math: Incorrect return from float gamma (-0X1.FA471547C2FE5P+1) |
108 | | [2543] math: Incorrect return from float gamma (-0X1.9260DCP+1) |
109 | | [2558] math: Incorrect return from double gamma (-0X1.FA471547C2FE5P+1) |
110 | | [2898] libc: [improve] warning: the use of `mktemp' is dangerous, better |
111 | | use `mkstemp' |
112 | | [4404] localedata: German translation of "Alarm clock" is misleading |
113 | | [6799] math: nextafter() and nexttoward() doen't set errno on |
114 | | overflow/underflow errors |
115 | | [6803] math: scalb(), scalbln(), scalbn() do not set errno on |
116 | | overflow/underflow |
117 | | [10432] nis: _nss_nis_setnetgrent assertion failure |
118 | | [11460] libc: fts has no LFS support |
119 | | [12926] network: getaddrinfo()/make_request() may spin forever |
120 | | [13065] nptl: Race condition in pthread barriers |
121 | | [13690] nptl: pthread_mutex_unlock potentially cause invalid access |
122 | | [14341] dynamic-link: Dynamic linker crash when DT_JMPREL and DT_REL{,A} |
123 | | are not contiguous |
124 | | [14551] math: [ldbl-128ibm] strtold overflow handling for IBM long double |
125 | | [14912] libc: Rename non-installed bits/*.h headers |
126 | | [15002] libc: Avoid undefined behavior in posix_fallocate overflow check |
127 | | [15367] math: Let gcc use __builtin_isinf |
128 | | [15384] math: One constant fewer in ieee754/dbl-64/wordsize-64/s_finite.c |
129 | | [15421] math: lgamma wrongly sets signgam for ISO C |
130 | | [15470] math: [arm] On ARM llrintl() and llroundl() do not raise |
131 | | FE_INVALID with argument out of range |
132 | | [15491] math: [i386/x86_64] x86 nearbyint implementations wrongly clear |
133 | | all exceptions |
134 | | [15786] dynamic-link: ifunc resolver functions can smash function |
135 | | arguments |
136 | | [15918] math: Unnecessary check for equality in hypotf() |
137 | | [16061] localedata: Review / update transliteration data |
138 | | [16068] math: [i386/x86_64] x86 and x86_64 fesetenv exclude state they |
139 | | should include |
140 | | [16141] time: strptime %z offset restriction |
141 | | [16171] math: drem should be alias of remainder |
142 | | [16296] math: fegetround is pure? |
143 | | [16347] math: [ldbl-128ibm] ldbl-128/e_lgammal_r.c may not be suitable. |
144 | | [16364] libc: sleep may leave SIGCHLD blocked on sync cancellation on |
145 | | GNU/Linux |
146 | | [16399] math: [mips] lrint / llrint / lround / llround missing exceptions |
147 | | [16415] math: Clean up ldbl-128 / ldbl-128ibm expm1l for large positive |
148 | | arguments |
149 | | [16422] math: [powerpc] math-float, math-double failing llrint tests with |
150 | | "Exception "Inexact" set" on ppc32 |
151 | | [16495] localedata: nl_NL: date_fmt: shuffle year/month around |
152 | | [16517] math: Missing underflow exception from tanf/tan/tanl |
153 | | [16519] math: Missing underflow exception from sinhf |
154 | | [16520] math: Missing underflow exception from tanhf |
155 | | [16521] math: Missing underflow exception from exp2 |
156 | | [16620] math: [ldbl-128ibm] exp10l spurious overflows / bad directed |
157 | | rounding results |
158 | | [16734] stdio: fopen calls mmap to allocate its buffer |
159 | | [16961] math: nan function incorrect handling of bad sequences |
160 | | [16962] math: nan function unbounded stack allocation (CVE-2014-9761) |
161 | | [16973] localedata: Fix lang_lib/lang_term as per ISO 639-2 |
162 | | [16985] locale: localedef: confusing error message when opening output |
163 | | fails |
164 | | [17118] math: ctanh(INFINITY + 2 * I) returns incorrect value |
165 | | [17197] locale: Redundant shift character in iconv conversion output at |
166 | | block boundary |
167 | | [17243] libc: trunk/posix/execl.c:53: va_args problem ? |
168 | | [17244] libc: trunk/sysdeps/unix/sysv/linux/semctl.c:116: va_args muxup ? |
169 | | [17250] dynamic-link: static linking breaks nss loading |
170 | | (getaddrinfo/getpwnam/etc...) |
171 | | [17404] libc: atomic_exchange_rel lacking a barrier on MIPS16, GCC before |
172 | | 4.7? |
173 | | [17441] math: isnan() should use __builtin_isnan() in GCC |
174 | | [17514] nptl: Assert failure unlocking ERRORCHECK mutex after timedlock |
175 | | (related to lock elision) |
176 | | [17787] manual: Exponent on page 324 of the PDF ends prematurely |
177 | | [17886] time: strptime should be able to parse "Z" as a timezone with %z |
178 | | [17887] time: strptime should be able to parse "+01:00" style timezones |
179 | | [17905] libc: catopen() Multiple unbounded stack allocations |
180 | | (CVE-2015-8779) |
181 | | [18084] libc: backtrace (..., 0) dumps core on x86 |
182 | | [18086] libc: nice() sets errno to 0 on success |
183 | | [18240] libc: hcreate, hcreate_r should fail with ENOMEM if element count |
184 | | is too large (CVE-2015-8778) |
185 | | [18251] dynamic-link: SONAME missing when audit modules provides path |
186 | | [18265] libc: add attributes for wchar string and memory functions |
187 | | [18370] math: csqrt missing underflows |
188 | | [18421] libc: [hppa] read-only segment has dynamic relocations |
189 | | [18472] libc: Obsolete syscall wrappers should be compat symbols |
190 | | [18480] libc: hppa glibc miscompilation in sched_setaffinity() |
191 | | [18491] localedata: Update tr_TR LC_CTYPE as part of Unicode updates |
192 | | [18525] localedata: Remove locale timezone information |
193 | | [18560] libc: [powerpc] spurious bits/ipc.h definitions |
194 | | [18568] localedata: Update locale data to Unicode 8.0 |
195 | | [18589] locale: sort-test.sh fails at random |
196 | | [18595] math: ctan, ctanh missing underflows |
197 | | [18604] libc: assert macro-expands its argument |
198 | | [18610] math: S390: fetestexcept() reports any exception if DXC-code |
199 | | contains a vector instruction exception. |
200 | | [18611] math: j1, jn missing errno setting on underflow |
201 | | [18618] localedata: sync Chechen locale definitions with other *_RU |
202 | | locales |
203 | | [18647] math: powf(-0x1.000002p0, 0x1p30) returns 0 instead of +inf |
204 | | [18661] libc: Some x86-64 assembly codes don't align stack to 16 bytes |
205 | | [18665] network: In send_dg, the recvfrom function is NOT always using the |
206 | | buffer size of a newly created buffer (CVE-2015-7547) |
207 | | [18674] libc: [i386] trunk/sysdeps/i386/tst-auditmod3b.c:84: possible |
208 | | missing break ? |
209 | | [18675] libc: fpathconf(_PC_NAME_MAX) fails against large filesystems for |
210 | | 32bit processes |
211 | | [18681] libc: regexp.h is obsolete and buggy, and should be desupported |
212 | | [18699] math: tilegx cproj() for various complex infinities does not yield |
213 | | infinity |
214 | | [18724] libc: Harden put*ent functions against data injection |
215 | | [18743] nptl: PowerPC: findutils testcase fails with --enable-lock-elision |
216 | | [18755] build: build errors with -DNDEBUG |
217 | | [18757] stdio: fmemopen fails to set errno on failure |
218 | | [18778] dynamic-link: ld.so crashes if failed dlopen causes libpthread to |
219 | | be forced unloaded |
220 | | [18781] libc: openat64 lacks O_LARGEFILE |
221 | | [18787] libc: [hppa] sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: |
222 | | error: can’t find a register in class ‘R1_REGS’ while reloading ‘asm’ |
223 | | [18789] math: [ldbl-128ibm] sinhl inaccurate near 0 |
224 | | [18790] math: [ldbl-128ibm] tanhl inaccurate |
225 | | [18795] libc: stpncpy fortification misses buffer lengths that are |
226 | | statically too large |
227 | | [18796] build: build fails for --disable-mathvec |
228 | | [18803] math: hypot missing underflows |
229 | | [18820] stdio: fmemopen may leak memory on failure |
230 | | [18823] math: csqrt spurious underflows |
231 | | [18824] math: fma spurious underflows |
232 | | [18825] math: pow missing underflows |
233 | | [18857] math: [ldbl-128ibm] nearbyintl wrongly uses signaling comparisons |
234 | | [18868] nptl: pthread_barrier_init typo has in-theory-undefined behavior |
235 | | [18870] build: sem_open.c fails to compile with missing symbol |
236 | | FUTEX_SHARED |
237 | | [18872] stdio: Fix memory leak in printf_positional |
238 | | [18873] libc: posix_fallocate overflow check ineffective |
239 | | [18875] math: Excess precision leads incorrect libm |
240 | | [18877] libc: arm: mmap offset regression |
241 | | [18887] libc: memory corruption when using getmntent on blank lines |
242 | | [18918] localedata: hu_HU: change time to HH:MM:SS format |
243 | | [18921] libc: Regression: extraneous stat() and fstat() performed by |
244 | | opendir() |
245 | | [18928] dynamic-link: LD_POINTER_GUARD is not ignored for privileged |
246 | | binaries (CVE-2015-8777) |
247 | | [18951] math: tgamma missing underflows |
248 | | [18952] math: [ldbl-128/ldbl-128ibm] lgammal spurious "invalid", incorrect |
249 | | signgam |
250 | | [18953] localedata: lt_LT: change currency symbol to the euro |
251 | | [18956] math: powf inaccuracy |
252 | | [18961] math: [i386] exp missing underflows |
253 | | [18966] math: [i386] exp10 missing underflows |
254 | | [18967] math: math.h XSI POSIX namespace (gamma, isnan, scalb) |
255 | | [18969] build: multiple string test failures due to missing locale |
256 | | dependencies |
257 | | [18970] libc: Reference of pthread_setcancelstate in libc.a |
258 | | [18977] math: float / long double Bessel functions not in XSI POSIX |
259 | | [18980] math: i386 libm functions return with excess range and precision |
260 | | [18981] math: i386 scalb*, ldexp return with excess range and precision |
261 | | [18982] stdio: va_list and vprintf |
262 | | [18985] time: Passing out of range data to strftime() causes a segfault |
263 | | (CVE-2015-8776) |
264 | | [19003] math: [x86_64] fma4 version of pow inappropriate contraction |
265 | | [19007] libc: FAIL: elf/check-localplt with -z now and binutils 2.26 |
266 | | [19012] locale: iconv_open leaks memory on error path |
267 | | [19016] math: clog, clog10 inaccuracy |
268 | | [19018] nptl: Mangle function pointers in tls_dtor_list |
269 | | [19032] math: [i386] acosh (-qNaN) spurious "invalid" exception |
270 | | [19046] math: ldbl-128 / ldbl-128ibm lgamma bad overflow handling |
271 | | [19048] malloc: malloc: arena free list can become cyclic, increasing |
272 | | contention |
273 | | [19049] math: [powerpc] erfc incorrect zero sign |
274 | | [19050] math: [powerpc] log* incorrect zero sign |
275 | | [19058] math: [x86_64] Link fail with -fopenmp and -flto |
276 | | [19059] math: nexttoward overflow incorrect in non-default rounding modes |
277 | | [19071] math: ldbl-96 lroundl incorrect just below powers of 2 |
278 | | [19074] network: Data race in _res_hconf_reorder_addrs |
279 | | [19076] math: [ldbl-128ibm] log1pl (-1) wrong sign of infinity |
280 | | [19077] math: [ldbl-128ibm] logl (1) incorrect sign of zero result |
281 | | [19078] math: [ldbl-128ibm] expl overflow incorrect in non-default |
282 | | rounding modes |
283 | | [19079] math: dbl-64/wordsize-64 lround based on llround incorrect for |
284 | | ILP32 |
285 | | [19085] math: ldbl-128 lrintl, lroundl missing exceptions for 32-bit long |
286 | | [19086] manual: posix_fallocate64 documented argument order is wrong. |
287 | | [19088] math: lround, llround missing exceptions close to overflow |
288 | | threshold |
289 | | [19094] math: lrint, llrint missing exceptions close to overflow threshold |
290 | | [19095] math: dbl-64 lrint incorrect for 64-bit long |
291 | | [19122] dynamic-link: Unnecessary PLT relocations in librtld.os |
292 | | [19124] dynamic-link: ld.so failed to build with older assmebler |
293 | | [19125] math: [powerpc32] llroundf, llround incorrect exceptions |
294 | | [19129] dynamic-link: [arm] Concurrent lazy TLSDESC resolution can crash |
295 | | [19134] math: [powerpc32] lround, lroundf spurious exceptions |
296 | | [19137] libc: i386/epoll_pwait.S doesn't support cancellation |
297 | | [19143] nptl: Remove CPU set size checking from sched_setaffinity, |
298 | | pthread_setaffinity_np |
299 | | [19156] math: [ldbl-128] j0l spurious underflows |
300 | | [19164] nptl: tst-getcpu fails with many possible CPUs |
301 | | [19168] math: math/test-ildoubl and math/test-ldouble failure |
302 | | [19174] nptl: PowerPC: TLE enabled pthread mutex performs poorly. |
303 | | [19178] dynamic-link: ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA confuses |
304 | | prelink |
305 | | [19181] math: [i386/x86_64] fesetenv (FE_DFL_ENV), fesetenv |
306 | | (FE_NOMASK_ENV) do not clear SSE exceptions |
307 | | [19182] malloc: malloc deadlock between ptmalloc_lock_all and |
308 | | _int_new_arena/reused_arena |
309 | | [19189] math: [ldbl-128] log1pl (-qNaN) spurious "invalid" exception |
310 | | [19201] math: dbl-64 remainder incorrect sign of zero result |
311 | | [19205] math: bits/math-finite.h conditions do not match math.h and |
312 | | bits/mathcalls.h |
313 | | [19209] math: bits/math-finite.h wrongly maps ldexp to scalbn |
314 | | [19211] math: lgamma functions do not set signgam for -ffinite-math-only |
315 | | for C99-based standards |
316 | | [19212] libc: features.h not -Wundef clean |
317 | | [19213] math: [i386/x86_64] log* (1) incorrect zero sign for -ffinite- |
318 | | math-only |
319 | | [19214] libc: Family and model identification for AMD CPU's are incorrect. |
320 | | [19219] libc: GLIBC build fails for ia64 with missing __nearbyintl |
321 | | [19228] math: [powerpc] nearbyint wrongly clears "inexact", leaves traps |
322 | | disabled |
323 | | [19235] math: [powerpc64] lround, lroundf, llround, llroundf spurious |
324 | | "inexact" exceptions |
325 | | [19238] math: [powerpc] round, roundf spurious "inexact" for integer |
326 | | arguments |
327 | | [19242] libc: strtol incorrect in Turkish locales |
328 | | [19243] malloc: reused_arena can pick an arena on the free list, leading |
329 | | to an assertion failure and reference count corruption |
330 | | [19253] time: tzset() ineffective when temporary TZ did not include DST |
331 | | rules |
332 | | [19266] math: strtod ("NAN(I)") incorrect in Turkish locales |
333 | | [19270] math: [hppa] Shared libm missing __isnanl |
334 | | [19285] libc: [hppa] sysdeps/unix/sysv/linux/hppa/bits/mman.h: missing |
335 | | MAP_HUGETLB and MAP_STACK defines |
336 | | [19313] nptl: Wrong __cpu_mask for x32 |
337 | | [19347] libc: grantpt: try to force a specific gid even without pt_chown |
338 | | [19349] math: [ldbl-128ibm] tanhl inaccurate for small arguments |
339 | | [19350] math: [ldbl-128ibm] sinhl spurious overflows |
340 | | [19351] math: [ldbl-128ibm] logl inaccurate near 1 |
341 | | [19363] time: x32: times() return value wrongly truncates/sign extends |
342 | | from 32bit |
343 | | [19367] dynamic-link: Improve branch prediction on Silvermont |
344 | | [19369] network: Default domain name not reset by res_ninit when "search" |
345 | | / "domain" entry is removed from resolv.conf |
346 | | [19375] math: powerpc: incorrect results for POWER7 logb with negative |
347 | | subnormals |
348 | | [19385] localedata: bg_BG: time separator should be colon, not comma |
349 | | [19408] libc: linux personality syscall wrapper may erroneously return an |
350 | | error on 32-bit architectures |
351 | | [19415] libc: dladdr returns wrong names on hppa |
352 | | [19432] libc: iconv rejects redundant escape sequences in IBM900, IBM903, |
353 | | IBM905, IBM907, and IBM909 |
354 | | [19439] math: Unix98 isinf and isnan functions conflict with C++11 |
355 | | [19443] build: build failures with -DDEBUG |
356 | | [19451] build: Make check fails on test-double-vlen2 |
357 | | [19462] libc: Glibc failed to build with -Os |
358 | | [19465] math: Wrong code with -Os |
359 | | [19466] time: time/tst-mktime2.c is compiled into an infinite loop with |
360 | | -Os |
361 | | [19467] string: Fast_Unaligned_Load needs to be enabled for Excavator core |
362 | | CPU's. |
363 | | [19475] libc: Glibc 2.22 doesn't build on sparc [PATCH] |
364 | | [19486] math: S390: Math tests fail with "Exception Inexact set". |
365 | | [19529] libc: [ARM]: FAIL: stdlib/tst-makecontext |
366 | | [19550] libc: [mips] mmap negative offset handling inconsistent with other |
367 | | architectures |
368 | | [19590] math: Fail to build shared objects that use libmvec.so functions. |
369 | | }}} |
| 3 | Changes |
| 4 | [https://abi-laboratory.pro/tracker/changelog/glibc/2.25/log.html] |