]> git.proxmox.com Git - qemu.git/commit
mips: rlimit incorrectly converts values
authorWesley W. Terpstra <terpstra@debian.org>
Tue, 12 Jul 2011 11:38:22 +0000 (14:38 +0300)
committerRiku Voipio <riku.voipio@linaro.org>
Tue, 12 Jul 2011 11:38:22 +0000 (14:38 +0300)
commit95b33b2f4f0293068d1a42b3ab5badcc6333c6ba
tree3f4ef76d5a8b48ef6f0997ec826d92d92918232b
parente6e5bd2dd1868b5a244bc572422f585cef579ffb
mips: rlimit incorrectly converts values

Byte swap was applied in the wrong order with testing for
RLIM_INFINITY. On mips bigendian from an amd64 system this results in
infinity being misinterpretted as 2^31-1.

This is a serious bug because it causes setrlimit stack size to kill
all child processes. This means (for example) that 'make' can run no
children. The mechanism of failure:
1. parent sets stack size rlimit to 'infinity'
2. qemu screws this value up
3. child process fetches stack size as a large (but non-infinite) value
4. qemu tries to allocate stack before execution
5. stack allocation fails (too big) and child process dies

Signed-off-by: Wesley W. Terpstra <terpstra@debian.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/syscall.c