Commit Graph

43329 Commits

Author SHA1 Message Date
Andreas K. Hüttel ae2192ee90
version.h: Increase version number
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-23 23:51:31 +01:00
Andreas K. Hüttel 5a836551bc
NEWS: add 2.44 section
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-23 23:50:10 +01:00
Andreas K. Hüttel f762ccf84f
Create ChangeLog.old/ChangeLog.32
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-23 21:54:00 +01:00
Andreas K. Hüttel d71bb8ab31
version.h, include/features.h: Increase version number
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-23 21:49:16 +01:00
Andreas K. Hüttel 145ff72025
contrib.texi: Add missing accent
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-23 12:22:19 +01:00
Aurelien Jarno ab1aba6eb7 tst-cond23: add <support/test-driver.h> include
This is needed for the recently added EXIT_UNSUPPORTED return value.
Message-ID: <20260118174700.495539-1-aurelien@aurel32.net>
2026-01-23 01:01:42 +01:00
Andreas K. Hüttel da9e56ca3a
install.texi, INSTALL: update versions
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 23:18:14 +01:00
Andreas K. Hüttel d9503d1b63
contrib.texi: Updates
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 23:11:05 +01:00
Andreas K. Hüttel bf047617c0
NEWS: Insert list of fixed security advisories
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 22:00:10 +01:00
Andreas K. Hüttel 42903d2146
NEWS: Mention build issues due to const-preserving macros
Reviewed-by: Collin Funk <collin.funk1@gmail.com>
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 21:57:31 +01:00
Andreas K. Hüttel f921e0a13a
NEWS: Insert list of fixed bugs
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 17:34:40 +01:00
Andreas K. Hüttel 2942e34e6b
NEWS: Editorial changes
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 17:12:18 +01:00
Andreas K. Hüttel f7e64ebc5c
NEWS: Additional items and minor consolidation
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 17:04:32 +01:00
Andreas K. Hüttel e724b25eee
NEWS: Group ISO C23 related changes
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 12:56:58 +01:00
Andreas K. Hüttel c9753cf643
po: Incorporate translations
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-22 12:44:43 +01:00
Adhemerval Zanella c809f90e5e Update advisory text for GLIBC-SA-2026-0003
Add all of the Fix-Commit lines for fixed branches.

Fixes were tested and committed up to glibc-2.31.
2026-01-21 13:38:46 -03:00
Carlos O'Donell 04e750e75b Add advisory text for CVE-2025-15281
Explain the security issue and set context for the vulnerability to help
downstreams get a better understanding of the issue.

Reviewed-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
2026-01-20 10:18:56 -05:00
Adhemerval Zanella 80cc58ea2d posix: Reset wordexp_t fields with WRDE_REUSE (CVE-2025-15281 / BZ 33814)
The wordexp fails to properly initialize the input wordexp_t when
WRDE_REUSE is used. The wordexp_t struct is properly freed, but
reuses the old wc_wordc value and updates the we_wordv in the
wrong position.  A later wordfree will then call free with an
invalid pointer.

Checked on x86_64-linux-gnu and i686-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2026-01-20 11:34:12 -03:00
Andreas K. Hüttel c42baf0c08
libc.pot: regenerate
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-19 16:24:36 +01:00
Xi Ruoyao efe341ae0e Linux: fix tst-copy_file_range-large failure in 32-bit glibc build on 64-bit kernel [BZ 33790]
Reported-by: H. J. Lu <hjl.tools@gmail.com>
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
Tested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2026-01-19 15:40:05 +01:00
Florian Weimer 7b543dcdf9 elf: Ignore LD_PROFILE if LD_PROFILE_OUTPUT is not set (bug 33797)
The previous default for LD_PROFILE_OUTPUT, /var/tmp, is insecure
because it's typically a 1777 directory, and other systems could
place malicious files there which interfere with execution.

Requiring the user to specify a profiling directory mitigates
the impact of bug 33797.  Clear LD_PROFILE_OUTPUT alongside
with LD_PROFILE.

Rework the test not to use predictable file names.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2026-01-19 08:36:56 +01:00
Samuel Thibault 0bbeb1fd13 hurd: make __thread_set_pcsptp align stack
When cancelling a thread, __pthread_do_cancel forces calling call_exit,
but we need to align down the stack, so any further SSE use can work.
2026-01-17 15:15:33 +01:00
Carlos O'Donell 872cc459a9 Update advisory text for CVE-2026-0951
Add all of the Fix-Commit lines for fixed branches.

Fixes were tested and committed up to glibc-2.32 (last actively
maintained branch).
2026-01-16 17:12:24 -05:00
Carlos O'Donell ffe48207fd Add advisory text for CVE-2026-0951
Explain the security issue and set context for the vulnerability to help
downstreams get a better understanding of the issue.

Reviewed-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
2026-01-16 10:20:56 -05:00
Siddhesh Poyarekar 75d8c149f8 Add advisory text for CVE-2026-0861
Explain the security issue and set context for the vulnerability to help
downstreams get a better understanding of the issue.

Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2026-01-16 09:32:51 -05:00
Carlos O'Donell e56ff82d50 resolv: Fix NSS DNS backend for getnetbyaddr (CVE-2026-0915)
The default network value of zero for net was never tested for and
results in a DNS query constructed from uninitialized stack bytes.
The solution is to provide a default query for the case where net
is zero.

Adding a test case for this was straight forward given the existence of
tst-resolv-network and if the test is added without the fix you observe
this failure:

FAIL: resolv/tst-resolv-network
original exit status 1
error: tst-resolv-network.c:174: invalid QNAME: \146\218\129\128
error: 1 test failures

With a random QNAME resulting from the use of uninitialized stack bytes.

After the fix the test passes.

Additionally verified using wireshark before and after to ensure
on-the-wire bytes for the DNS query were as expected.

No regressions on x86_64.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
2026-01-16 08:20:10 -05:00
Siddhesh Poyarekar c9188d3337 memalign: reinstate alignment overflow check (CVE-2026-0861)
The change to cap valid sizes to PTRDIFF_MAX inadvertently dropped the
overflow check for alignment in memalign functions, _mid_memalign and
_int_memalign.  Reinstate the overflow check in _int_memalign, aligned
with the PTRDIFF_MAX change since that is directly responsible for the
CVE.  The missing _mid_memalign check is not relevant (and does not have
a security impact) and may need a different approach to fully resolve,
so it has been omitted.

CVE-Id: CVE-2026-0861
Vulnerable-Commit: 9bf8e29ca1
Reported-by: Igor Morgenstern, Aisle Research
Fixes: BZ #33796
Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
2026-01-15 16:19:50 -05:00
Arjun Shankar 289d3283b6 malloc: Add tst-mallocfork to tests-exclude-threaded exception list
Commit 244c404ae8 added -threaded-main and
-threaded-worker variants of several malloc tests with some exceptions.

tst-mallocfork calls fork from a signal handler, leading to sporadic
deadlocks when multi-threaded since fork is not AS-safe when
multi-threading.  This commit therefore adds tst-mallocfork to the
appropriate exception list.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
2026-01-15 17:00:08 +01:00
Adhemerval Zanella 088a2055da aarch64: Fix LD_AUDIT with GCS in permissive mode
In permissive mode, during audit module handling, check_gcs is unaware
that it is handling audit modules rather than the binary itself.  It
causes the loader to fail to load the audit module, rather than
loading it and disabling GCS.

Also extends GCS tests with 4 LD_AUDIT tests:

1. tst-gcs-audit-disabled: checks if the audit module without GCS
   marking is loaded with default gcs support.

2. tst-gcs-audit-enforced: checks if the audit module without GCS
   marking is not loaded when GCS is enforced.

3. tst-gcs-audit-optional: checks if the audit module without GCS
   marking is loaded when GCS is optional.

4. tst-gcs-audit-override: check if the audit modules without GCS
   marking is loaded when GCS is overrided.

Checked on aarch64-linux-gnu with Linux 6.18 on Apple M4 emulated (for
BTI support) and on qemu 10.1.50 simulated (for GCS).

Reviewed-by: Yury Khrustalev <yury.khrustalev@arm.com>
Tested-by: Yury Khrustalev <yury.khrustalev@arm.com>
2026-01-14 15:00:24 -03:00
Adhemerval Zanella e304c9cbf7 aarch64: Add LD_PRELOAD tests for GCS handling
There are modeled after the 'shared' tests subset and it adds 4 new
tests:

1. tst-gcs-preload-disabled: checks if GCS is disabled when a LD_PRELOAD
   module is used without GCS marking with default GCS support.

2. tst-gcs-preload-enforced-abort: chekcs if loader aborts startup when
   a LD_PRELOAD is used without GCS marking and GCS is enforced.

3. tst-gcs-preload-optional: checks if GCS is disabled when a LD_PRELOAD
   is used without GCS marking and GCS is optional.

4. tst-gcs-preload-override: checks if GCS is enabled when a LD_PRELOAD
   is used without GCS marking and GCS is overrided.

Checked on aarch64-linux-gnu with Linux 6.18 on Apple M4 emulated (for
BTI support) and on qemu 10.1.50 simulated (for GCS).

Reviewed-by: Yury Khrustalev <yury.khrustalev@arm.com>
Tested-by: Yury Khrustalev <yury.khrustalev@arm.com>
2026-01-14 14:33:27 -03:00
Adhemerval Zanella cc098e61b0 aarch64: Add LD_AUDIT tests for BTI handling
This patch adds 3 new tests:

1. tst-bti-permissive-audit: checks that process runs when an LD_AUDIT module
   not marked with BTI but BTI is not enforced.

2. tst-bti-prot-audit: checks if the process correctly handles audit module with
   BTI marking when BTI is enforced.

3. tst-bti-unprot-audit: check if the process ignores an audit module without
   BTI marking when BTI is enforced.

Checked on aarch64-linux-gnu with Linux 6.18 on Apple M4 emulated (for
BTI support) and on qemu 10.1.50 simulated (for GCS).

Reviewed-by: Yury Khrustalev <yury.khrustalev@arm.com>
Tested-by: Yury Khrustalev <yury.khrustalev@arm.com>
2026-01-14 14:33:25 -03:00
Adhemerval Zanella 99207945fb aarch64: Add LD_PRELOAD tests for BTI handling
Add 3 new tests to check if LD_PRELOAD is correctly handled:

1. tst-bti-abort-unprot-preload: checks if the process is aborted if
   a LD_PRELOAD module without BTI marking is used and BTI is enforced.

2. tst-bti-dep-prot-preload: checks if the process works correctly if
   a LD_PRELOAD module with BTI marking is used and BTI is enforced.

3. tst-bti-permissive-preload: checks if the process works correctly
   if a LD_PRELOAD module with BTI marking is used and BTI is not
   enforced.

Reviewed-by: Yury Khrustalev <yury.khrustalev@arm.com>
Tested-by: Yury Khrustalev <yury.khrustalev@arm.com>
2026-01-14 14:33:22 -03:00
Adhemerval Zanella ae62786747 Revert "x86: Do not use __builtin_fpclassify for _Float64x/long double"
This reverts commit 5011210399. It
breaks libstdc++ and other languages bootstrap.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2026-01-14 14:33:20 -03:00
Adhemerval Zanella 9e822788e5 Revert "x86: Do not use __builtin_isinf_sign for _Float64x/long double"
This reverts commit 999cd617cb.  It
breaks libstdc++ and other languages bootstrap.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2026-01-14 14:33:16 -03:00
Yury Khrustalev 5d1cb431aa aarch64: update NEWS for 2.43 release
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
2026-01-13 13:26:27 +00:00
Yury Khrustalev 99b8ec8fd4 aarch64: Add LD_DEBUG=security to log BTI and GCS warnings
Introduce DL_DEBUG_SECURITY mask to enable messages related to
loading modules that lack certain target-dependent hardening
or security features.

Use this mask for warnings related to AArch64 BTI and GCS.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2026-01-13 09:33:04 +00:00
Samuel Thibault 274441f62a tst-if_nameindex.c: Fix minimum buffer size
The standard says that the buffer given to if_indextoname shall have at
least IF_NAMESIZE bytes.
2026-01-12 21:24:40 +01:00
Sachin Monga f05ab7c4a9 ldbl-128ibm-compat: Add local aliases for printf family symbols
When the compiler selects IEEE-128 long double ABI(-mabi=ieeelongdouble),
calls to printf, fprintf, sprintf and snprintf are redirected to the
__printfieee128, __fprintfieee128, __sprintfieee128 and __snprintfieee128
symbols respectively.  This causes "break printf" (and others) in
GDB to fail because the original symbol names do not exist as global
symbols in libc.so.6.

Fix this by adding local symbol aliases in the ieee128 compatibility
files so that the original symbol names are present in the symbol table
again.  This restores the expected GDB behavior ("break printf" works)
without requiring dynamic symbols or versioned compatibility symbols.

Suggested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2026-01-12 12:40:29 -05:00
Adhemerval Zanella e56b3faf8d math: Fix powerpc64le -Os build after 6b7067460f
The __USE_EXTERN_INLINES is gated __OPTIMIZE_SIZE__, so also gated
the alias required using the same logic.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2026-01-12 10:34:42 -03:00
Adhemerval Zanella 422c3a5baf x86: Fix x86_64 build failure with -Os (BZ 33367)
The 13cfd77bf5 change broke the b5d88fa6c3 fix by removing the symbol
to __symbol redirections.  Although it works for -O2 with both gcc
and clang, with -Os without the redirection, the libcall might still
be issued.

This patch reinstates the b5d88fa6c3 fix, with a modification that
allows each ifunc variant to control which trunc to issue.  This is
required for clang, which defines HAVE_X86_INLINE_TRUNC to 1 (meaning
that trunc will always be lowered to the instruction on -Os).

Checked on x86_64-linux-gnu with -O2 and -Os with gcc-15 and clang-18.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2026-01-12 10:34:40 -03:00
Adhemerval Zanella 8efe2b03db math: Sync acosh from CORE-MATH
The CORE-MATH c423b9a3 commit made atanh to use a slight different
muldd_acc and polydd (which uses muldd_acc internally) compared
to previous version.

The new tests were suggested by Paul Zimmermann (although I did
not see any regression).

Checked on x86_64-linux-gnu, x86_64-linux-gnu-v3, aarch64-linux-gnu,
and i686-linux-gnu.

Reviewed-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>
2026-01-12 10:34:38 -03:00
Adhemerval Zanella 05b46df987 math: Sync atanh from CORE-MATH
The CORE-MATH c423b9a3 commit made atanh to use a slight different
muldd_acc, mulddd, and polydd (which uses muldd_acc internally)
compare to asinh and acosh.

The new tests were suggested by Paul Zimmermann (although I did
not see any regression).

Checked on x86_64-linux-gnu, x86_64-linux-gnu-v3, aarch64-linux-gnu,
and i686-linux-gnu.

Reviewed-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>
2026-01-12 10:34:35 -03:00
Adhemerval Zanella eafea63c11 math: Sync asinh from CORE-MATH
The CORE-MATH commit cd653cf7 fixes some issues for RNDZ (below).

testing double (without inline functions)
Failure: Test: asinh_towardzero (0x1.07888cc76eb3cp-4)
Result:
 is:          6.4294901954893124e-02   0x1.075a175321f74p-4
 should be:   6.4294901954893110e-02   0x1.075a175321f73p-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: asinh_towardzero (0x1.07888e17d0fep-4)
Result:
 is:          6.4294906839823556e-02   0x1.075a18a2d2922p-4
 should be:   6.4294906839823542e-02   0x1.075a18a2d2921p-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: asinh_towardzero (0x1.07888e344d64ep-4)
Result:
 is:          6.4294907253493294e-02   0x1.075a18bf3fed0p-4
 should be:   6.4294907253493280e-02   0x1.075a18bf3fecfp-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: asinh_towardzero (0x1.07888e45219adp-4)
Result:
 is:          6.4294907497881415e-02   0x1.075a18d00b3f4p-4
 should be:   6.4294907497881401e-02   0x1.075a18d00b3f3p-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: asinh_towardzero (0x1.0788946685afp-4)
Result:
 is:          6.4294930288402857e-02   0x1.075a1eee32572p-4
 should be:   6.4294930288402843e-02   0x1.075a1eee32571p-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: asinh_towardzero (0x1.07889a0cffe1fp-4)
Result:
 is:          6.4294951293986671e-02   0x1.075a2491b07a9p-4
 should be:   6.4294951293986657e-02   0x1.075a2491b07a8p-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: asinh_towardzero (0x1.07889cddeccf9p-4)
Result:
 is:          6.4294961763186983e-02   0x1.075a276120993p-4
 should be:   6.4294961763186969e-02   0x1.075a276120992p-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: asinh_towardzero (0x1.07889efd3a82bp-4)
Result:
 is:          6.4294969652980468e-02   0x1.075a297f4f503p-4
 should be:   6.4294969652980454e-02   0x1.075a297f4f502p-4
 difference:  1.3877787807814456e-17   0x1.0000000000000p-56
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of `asinh_towardzero'
 is      : 1 ulp
 accepted: 0 ulp

The muldd was renamed to muldd_acc to avoid deviate from CORE-MATH
(the symbol and logic in replicated on multiple implementation,
different than glibc we consolidate it on ddcoremath.h).

Checked on x86_64-linux-gnu, x86_64-linux-gnu-v3, aarch64-linux-gnu,
and i686-linux-gnu.

Reviewed-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>
2026-01-12 10:34:32 -03:00
Yury Khrustalev 0ca2eb1194 aarch64: Fix error messages for GCS and BTI incompatible modules
When either program path of module name is empty, don't print an
empty string followed by a colon.

Also fix-up test for a static BTI binary to check error message
for this case.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2026-01-12 09:32:16 +00:00
Samuel Thibault e539a26999 hurd: Fix sigreturn clobbering some xmm registers
__sigreturn2 uses _hurd_sigstate_unlock after restoring the interrupted
xmm values, we thus need it not to touch xmm. It makes sense to inline
sigstate_is_global_rcv _hurd_sigstate_lock/unlock anyway. unlock calls
gsync_wake, so we need to avoid xmm there as well.
2026-01-11 02:03:31 +01:00
Xi Ruoyao bcf231ec71
Linux: test sizes larger than UINT_MAX for copy_file_range
If the kernel supports the COPY_FILE_RANGE_64 FUSE interface, we can
safely tests the large size values.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
Tested-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2026-01-09 12:19:52 +01:00
Xi Ruoyao ee77bb99b7
Update the bundled <linux/fuse.h> userspace header from Linux 6.18
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
2026-01-09 12:19:49 +01:00
Xi Ruoyao dc700cc2c6
Linux: fix copy_file_range test on Linux >= 6.18
On Linux >= 6.18, the kernel submits the new COPY_FILE_RANGE_64
operation to the fuse implementation for large files.  There is a
fall-back routine to COPY_FILE_RANGE but it's only used if
COPY_FILE_RANGE_64 returns ENOSYS.

So, return ENOSYS instead of EIO for "unsupported" operations in order
to make the kernel do the correct thing for this case and maybe in case
that a new operation is added into the kernel fuse interface in the
future.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
2026-01-09 12:19:46 +01:00
Florian Weimer 78fdb2d6b1 Switch currency symbol for the bg_BG locale to euro
Bulgaria joined the eurozone on 2026-01-01.

Suggested-by: Йордан Гигов <jgigov@abv.bg>
Reviewed-by: Collin Funk <collin.funk1@gmail.com>
2026-01-09 10:39:34 +01:00
Yury Khrustalev 755798985d aarch64: Fix PT_GNU_PROPERTY checks for static exe (BZ 33713)
All checks related to the PT_GNU_PROPERTY bits would be skipped
if the binary had no PT_GNU_PROPERTY note at all. This meant that
enforcing an abort when some bits are not present was not possible.

Fixes BZ 33713

Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2026-01-05 10:51:05 +00:00