Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -O0 -ggdb -Wno-parentheses -Wno-format-security
uname output: Linux hk 5.6.3-arch1-1 #9 SMP PREEMPT Thu, 09 Apr 2020
03:39:30 +0000 x86_64 GNU/Linux
Machine Type: x86_64-pc-linux-gnu
Bash Version: 5.0
Patch Level: 16
Release Status: release
Description:
Trying to tab expand a tilde causes segfault. This action requires us to
get user entries by calling getpwent which is provided by
libnss_systemd.so
on my system.
If we compile bash with it's malloc implementation, libraries it depends
on also start to use this version of malloc.
getpwent function in libnss_systemd.so takes advantage of the C malloc
returning max_align_t aligned memory. Bash malloc returns 8 byte
aligned
memory which is less than 16 byte requirement on my x86-64 system. This
is the root cause of segfault.
Repeat-By:
$ echo ~u
Fix:
./configure --without-bash-malloc