Affected by the same bug.
target architecture arm
host architecture amd64
bash: xmalloc: .././locale.c:****: cannot allocate 2 bytes (0 bytes allocated)
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
sbrk() not working under qemu-user with a PIE-compiled binary?
Status in QEMU:
In Debian unstable, we recently switched bash to be a PIE-compiled
binary (for hardening). Unfortunately this resulted in bash being
broken when run under qemu-user (for all target architectures, host
being amd64 for me).
$ sudo chroot /srv/chroots/sid-i386/ qemu-i386-static /bin/bash
bash: xmalloc: .././shell.c:1709: cannot allocate 10 bytes (0 bytes allocated)
bash has its own malloc implementation based on sbrk():
When we disable this internal implementation and rely on glibc's
malloc, then everything is fine. But it might be that glibc has a
fallback when sbrk() is not working properly and it might hide the
underlying problem in qemu-user.
This issue has also been reported to the bash upstream author and he
suggested that the issue might be in qemu-user so I'm opening a ticket here.
Here's the discussion with the bash upstream author:
You can find the problematic bash binary in that .deb file:
The version of qemu I have been using is 2.11 (Debian package qemu-
user-static version 1:2.11+dfsg-1) but I have had reports that the
problem is reproducible with older versions (back to 2.8 at least).
Here are the related Debian bug reports:
It's worth noting that bash used to have this problem (when compiled as a PIE
binary) even when run directly but then something got fixed in the kernel and
now the problem only appears when run under qemu-user:
To manage notifications about this bug go to: