aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Weißschuh <thomas@t-8ch.de>2024-01-20 22:45:24 +0100
committerRichard Henderson <richard.henderson@linaro.org>2024-01-23 13:23:47 +1000
commit3805d4287fd64917a20bdc406b52d37800d46659 (patch)
treedd51cf33d0a5cd8f284b925478e7a3d8348430f5
parent1b21fe27e75a59bfe2513f5abcc6a18cfc35cfc8 (diff)
downloadqemu-3805d4287fd64917a20bdc406b52d37800d46659.zip
qemu-3805d4287fd64917a20bdc406b52d37800d46659.tar.gz
qemu-3805d4287fd64917a20bdc406b52d37800d46659.tar.bz2
linux-user/elfload: test return value of getrlimit
Should getrlimit() fail the value of dumpsize.rlimit_cur may not be initialized. Avoid reading garbage data by checking the return value of getrlimit. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> Message-Id: <20240120-qemu-user-dumpable-v3-1-6aa410c933f1@t-8ch.de> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--linux-user/elfload.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index cf9e744..c596871 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -4667,9 +4667,9 @@ static int elf_core_dump(int signr, const CPUArchState *env)
init_note_info(&info);
errno = 0;
- getrlimit(RLIMIT_CORE, &dumpsize);
- if (dumpsize.rlim_cur == 0)
+ if (getrlimit(RLIMIT_CORE, &dumpsize) == 0 && dumpsize.rlim_cur == 0) {
return 0;
+ }
corefile = core_dump_filename(ts);