]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - NEWS
INSTALL, install.texi: minor updates, regenerate
[thirdparty/glibc.git] / NEWS
diff --git a/NEWS b/NEWS
index 60a0371be9baa6947728d6cf398d3dcc22536465..1b89f9c01092ff62f36f903ab0528960f1f3a1bc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
 GNU C Library NEWS -- history of user-visible changes.
-Copyright (C) 1992-2023 Free Software Foundation, Inc.
+Copyright (C) 1992-2024 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
@@ -9,6 +9,13 @@ Version 2.39
 
 Major new features:
 
+* A new tunable, glibc.cpu.plt_rewrite, can be used to enable PLT
+  rewrite on x86-64.  When enabled with non-lazy binding, the dynamic
+  linker will rewrite indirect branches in PLT with direct branches.
+
+* Sync with Linux kernel 6.6 shadow stack interface.  The --enable-cet
+  configure option is only supported on x86-64.
+
 * struct statvfs now has an f_type member, equal to the f_type statfs member;
   on the Hurd this was always available under a reserved name,
   and under Linux a spare has been allocated: it was always zero
@@ -31,9 +38,66 @@ Major new features:
   the process ID associated with the process file descriptor created by
   pid_spawn, fork_np, or pidfd_open.
 
+* scanf-family functions now support the wN format length modifiers for
+  arguments pointing to types intN_t, int_leastN_t, uintN_t or
+  uint_leastN_t (for example, %w32d to read int32_t or int_least32_t in
+  decimal, or %w32x to read uint32_t or uint_least32_t in hexadecimal)
+  and the wfN format length modifiers for arguments pointing to types
+  int_fastN_t or uint_fastN_t, as specified in draft ISO C2X.
+
+* A new tunable, glibc.mem.decorate_maps, can be used to add additional
+  information on underlying memory allocated by the glibc (for instance,
+  on thread stack created by pthread_create or memory allocated by
+  malloc).
+
+* The <stdbit.h> header has been added from ISO C2X, with
+  stdc_leading_zeros, stdc_leading_ones, stdc_trailing_zeros,
+  stdc_trailing_ones, stdc_first_leading_zero, stdc_first_leading_one,
+  stdc_first_trailing_zero, stdc_first_trailing_one, stdc_count_zeros,
+  stdc_count_ones, stdc_has_single_bit, stdc_bit_width, stdc_bit_floor
+  and stdc_bit_ceil function families, each having functions for
+  unsigned char, unsigned short, unsigned int, unsigned long int and
+  unsigned long long int, and a type-generic macro.
+
+* On AArch64 new symbols were added to libmvec and now math.h has
+  annotations to allow GCC 9 or newer to auto-vectorize calls to the
+  following scalar math functions when -ffast-math is specified:
+  acos, acosf, asin, asinf, atan, atanf, atan2, atan2f, cos, cosf,
+  exp, expf, exp10, exp10f, exp2, exp2f, expm1, expm1f, log, logf,
+  log10, log10f, log1p, log1pf, log2, log2f, sin, sinf, tan, tanf.
+
 Deprecated and removed features, and other changes affecting compatibility:
 
-  [Add deprecations, removals and changes affecting compatibility here]
+* The ldconfig program now skips file names containing ';' or ending in
+  ".dpkg.tmp" or ".dpkg.new", to avoid examining temporary files created
+  by the RPM and dpkg package managers.
+
+* libcrypt has been removed from the GNU C Library.  The configure
+  options "--enable-crypt" and "--enable-nss-crypt" are no longer
+  available.  <crypt.h>, libcrypt.a, and libcrypt.so.1 will not be
+  installed.  For now <unistd.h> continues to declare the crypt
+  function by default, to avoid introducing vulnerabilities into
+  existing applications due to a missing prototype.  This declaration
+  is deprecated and may be removed in a future glibc release.
+
+  The replacement for libcrypt is libxcrypt, maintained separately from
+  GNU libc, but available under compatible licensing terms, and providing
+  binary backward compatibility with the former libcrypt.  It is currently
+  distributed from <https://github.com/besser82/libxcrypt/>.
+
+  As a consequence of this removal, GNU libc no longer makes any use of
+  the NSS cryptography library (Network Security Services; not to be
+  confused with Name Service Switch).  Distributors of binary packages
+  of GNU libc are advised to check whether their build processes can be
+  simplified.
+
+* The dynamic linker calls the malloc and free functions in more cases
+  during TLS access if a shared object with dynamic TLS is loaded and
+  unloaded.  This can result in an infinite recursion if a malloc
+  replacement library or its dependencies use dynamic TLS instead of
+  initial-exec TLS.
+
+* The ia64*-*-linux-gnu configurations are no longer supported.
 
 Changes to build and runtime requirements:
 
@@ -42,12 +106,145 @@ Changes to build and runtime requirements:
 
 Security related changes:
 
-  [Add security related changes here]
+The following CVEs were fixed in this release, details of which can be
+found in the advisories directory of the release tarball:
+
+  GLIBC-SA-2023-0002:
+    getaddrinfo: Stack read overflow in no-aaaa mode (CVE-2023-4527)
+
+  GLIBC-SA-2023-0003:
+    getaddrinfo: Potential use-after-free (CVE-2023-4806)
+
+  GLIBC-SA-2023-0004:
+    tunables: local privilege escalation through buffer overflow
+    (CVE-2023-4911)
+
+  GLIBC-SA-2024-0001:
+    syslog: Heap buffer overflow in __vsyslog_internal (CVE-2023-6246)
+
+  GLIBC-SA-2024-0002:
+    syslog: Heap buffer overflow in __vsyslog_internal (CVE-2023-6779)
+
+  GLIBC-SA-2024-0003:
+    syslog: Integer overflow in __vsyslog_internal (CVE-2023-6780)
 
 The following bugs are resolved with this release:
 
-  [The release manager will add the list generated by
-  scripts/list-fixed-bugs.py just before the release.]
+  [14522] localedata: fy_DE: LC_IDENTIFICATION data looks weird
+  [19305] libc: qsort() should return early if (nmemb <= 1)
+  [19479] localedata: gbm_IN: new Garhwali Locale
+  [19924] dynamic-link: TLS performance degradation after dlopen
+  [19956] localedata: ssy_ER: rename from aa_ER@saaho
+  [21719] libc: stdlib/msort : optimizing merge sort
+  [22526] localedata: th_TH  LC_COLLATE does not use copy "iso14651_t1"
+  [23012] localedata: el_GR: Greece now uses the 24h format for time
+  [23172] localedata: miq_NI: Provide actually abbreviated month names
+  [24006] localedata: Cyclic dependencies via copy in locales
+  [24013] localedata: am_pm definitions for es_ES
+  [24386] localedata: crh_RU: new locale
+  [24877] localedata: [Redundant Data] Remove redundant data between
+    en_NZ and en_AU
+  [25868] localedata: Incorrect trailing spaces in weekday names for
+    nn_NO
+  [26752] localedata: Please add the new locale zgh_MA
+  [27069] dynamic-link: Need a way to tell if a tunable is set by user
+  [27163] localedata: Error on test glk_IR with localedef
+  [27312] localedata: su_ID: new Sundanese locale
+  [27547] manual: "Summary of malloc-Related Functions" shows wrong
+    argument order for  `aligned_alloc` and `memalign`
+  [27574] libc: glibc should probably not define __WORDSIZE=64 for
+    __sparcv9
+  [27601] localedata: License information update in
+    localedata/locales/ast_ES
+  [28558] localedata: it_IT LC_MONETARY outdated p_cs_precedes and
+    n_cs_precedes
+  [28787] localedata: Add information for Occitan
+  [29039] dynamic-link: Corrupt DTV after reuse of a TLS module ID
+    following dlclose with unused TLS
+  [29486] localedata: New Zealand locales (en_NZ & mi_NZ) first day of
+    week should be Monday
+  [29504] localedata: Incorrect/misleading Time Format For ms_MY (AM/PM)
+  [29506] localedata: UTF-8 HANGUL SYLLABLE bugs
+  [30349] libc: Support returning a pidfd from posix_spawn()
+  [30412] localedata: d_t_fmt in id_ID uses %r placeholder but am_pm and
+    t_fmt_ampm are undefined
+  [30605] localedata: New locale for Komi language
+  [30649] localedata: [PATCH] Add transliteration of common emojis to
+    smileys
+  [30694] locale: The iconv program no longer tells the user which given
+    encoding name was wrong
+  [30709] nscd: nscd fails to build with cleanup handler if built with
+    -fexceptions
+  [30737] libc: fdopendir() is not robust - returns bogus DIR* instead
+    of flagging an error
+  [30740] build: [m68k] undefined reference to
+    `_wordcopy_fwd_dest_aligned'
+  [30745] libc: Slight bug in cache info codes for x86
+  [30750] network: Unaligned accesses in resolver
+  [30773] math: [m68k] busybox awk is broken (lshift.S related)
+  [30789] libc: [2.38 Regression] sem_open will fail on multithreaded
+    scenarios when semaphore file doesn't exist (O_CREAT)
+  [30800] nscd: Improper assert in prune_cache triggers if clock jumps
+    backwards
+  [30804] libc: F_GETLK, F_SETLK, and F_SETLKW value change for
+    powerpc64 with -D_FILE_OFFSET_BITS=64
+  [30842] network: Stack read overflow in getaddrinfo in no-aaaa mode
+    (CVE-2023-4527)
+  [30843] network: potential use-after-free in getcanonname
+    (CVE-2023-4806)
+  [30854] localedata: Update locale data to Unicode 15.1.0
+  [30884] network: Memory leak in getaddrinfo after fix for bug 30843
+    (CVE-2023-5156)
+  [30932] libc: Fortify Source has false-positives when too many files
+    are open
+  [30945] malloc: Core affinity setting incurs lock contentions between
+    threads
+  [30960] math: signed integer overflow in
+    glibc/sysdeps/s390/fpu/feenablxcpt.c
+  [30964] locale: Number grouping check mishandles multibyte thousands
+    separator
+  [30981] dynamic-link: dlclose does not properly implement force-first
+    handling
+  [30988] math: fesetexcept raises floating-point exception traps on
+    ppc, ppc64, ppc64le
+  [30989] math: fesetexcept raises floating-point exception traps on
+    i386
+  [30990] libc: fesetexceptflag raises floating-point exception traps on
+    i386, x86_64
+  [30998] math: fesetexceptflag clears too many floating-point exception
+    flags on alpha
+  [31019] manual: The documentation of feenableexcept is incomplete
+  [31022] math: feupdateenv (FE_DFL_ENV) crashes on riscv
+  [31035] libc: Library search path terminates on relative non-directory
+    name
+  [31042] libc: [s390x] .init and .fini padding
+  [31068] libc: sysdeps: sparc: invalid data access in memset due to
+    regression
+  [31078] manual: Code example in "Noncanonical Mode Example" has unused
+    'char *name;'
+  [31086] localedata: Errors in Tibetan, Dzongkha data
+  [31113] string: Wrong unwind information for rawmemchr on aarch64
+  [31151] libc: [RISC-V] missing support for profile/audit PLT setup
+  [31163] nss: getaddrinfo returns EAI_NONAME in oom situation
+  [31183] stdio: Wide stream buffer size reduced MB_LEN_MAX bytes after
+    bug 17522 fix
+  [31184] dynamic-link: FAIL: elf/tst-tlsgap
+  [31185] dynamic-link: Incorrect thread point access in
+    _dl_tlsdesc_undefweak and _dl_tlsdesc_dynamic
+  [31187] dynamic-link: Some CET tests fail with GCC 14
+  [31204] localedata: Fix decimal point and thousands separator for
+    uz_UZ
+  [31205] localedata: Inconsistent (mon_)grouping formats
+  [31218] dynamic-link: PLT rewrite overflows large displacement on x32
+  [31221] localedata: Add localedata for ISO code "tok" (Toki Pona)
+  [31230] dynamic-link: PLT rewrite failed without SELinux
+  [31239] localedata: anp_IN locale: abbreviated month names are the
+    same as the full month names
+  [31244] nptl: pthread_cancel hangs on sparc32
+  [31257] localedata: Sync with  CLDR: “Turkey” -> “Türkiye”
+  [31266] string: sparc: string/tst-memmove-overflow fails on 32-bit
+    sparcv9
+  [31276] libc: Wrong condition for heap allocation in qsort_r
 \f
 Version 2.38