tar fails with:
./tar: memory exhausted./tar: Error is not recoverable: exiting now
Bug found out to be in gnulib's lib/alignalloc.h .
C11 (§7.22.3.1) mandates that size must be an integral multiple of alignment.
Glibc's default allocator historically ignored this constraint, but Scudo
strictly enforces it,
returning EINVAL for aligned_alloc(4096, 10240).
So tar would work with -b 32 but not with -b 10.
--
--- gnulib/lib/alignalloc.h.bak 2026-09-23 20:11:46.582380908 +0300
+++ gnulib/lib/alignalloc.h 2026-09-23 20:20:19.458332281 +0300
@@ -49,16 +49,16 @@ extern "C" {
# define ALIGNALLOC_VIA_ALIGNED_ALLOC 0
#endif
-/* Work around AddressSanitizer bug.
+/* Work around AddressSanitizer bug and Scudo strictness.
https://gcc.gnu.org/PR104262
https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20220124/1001910.html
- */
+ Scudo enforces C11's requirement that size be a multiple of alignment. */
#ifdef __SANITIZE_ADDRESS__
# undef ALIGNALLOC_VIA_ALIGNED_ALLOC
# define ALIGNALLOC_VIA_ALIGNED_ALLOC 0
#endif
#ifdef __has_feature
-# if __has_feature (address_sanitizer)
+# if __has_feature (address_sanitizer) || __has_feature (scudo)
# undef ALIGNALLOC_VIA_ALIGNED_ALLOC
# define ALIGNALLOC_VIA_ALIGNED_ALLOC 0
# endif