summaryrefslogtreecommitdiff
path: root/fs/compat_binfmt_elf.c
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@gmail.com>2018-06-15 01:27:24 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2018-06-15 01:55:24 +0300
commit86a2bb5ad83161cc687671bdf188699e137ae226 (patch)
tree8556deca018ee7b44028d03bef993118b945d188 /fs/compat_binfmt_elf.c
parentc2574aaa5d98684519f0dfa64abe6896aeb124c6 (diff)
downloadlinux-86a2bb5ad83161cc687671bdf188699e137ae226.tar.xz
coredump: fix spam with zero VMA process
Nobody ever tried to self destruct by unmapping whole address space at once: munmap((void *)0, (1ULL << 47) - 4096); Doing this produces 2 warnings for zero-length vmalloc allocations: a.out[1353]: segfault at 7f80bcc4b757 ip 00007f80bcc4b757 sp 00007fff683939b8 error 14 a.out: vmalloc: allocation failure: 0 bytes, mode:0xcc0(GFP_KERNEL), nodemask=(null) ... a.out: vmalloc: allocation failure: 0 bytes, mode:0xcc0(GFP_KERNEL), nodemask=(null) ... Fix is to switch to kvmalloc(). Steps to reproduce: // vsyscall=none #include <sys/mman.h> #include <sys/resource.h> int main(void) { setrlimit(RLIMIT_CORE, &(struct rlimit){RLIM_INFINITY, RLIM_INFINITY}); munmap((void *)0, (1ULL << 47) - 4096); return 0; } Link: http://lkml.kernel.org/r/20180410180353.GA2515@avx2 Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/compat_binfmt_elf.c')
0 files changed, 0 insertions, 0 deletions