From 56a12abc1df1a019327c8958f6346f53935ec3fc Mon Sep 17 00:00:00 2001 From: Michael Holzheu Date: Thu, 26 Nov 2015 18:32:31 +0100 Subject: kexec: fix mmap return code handling When mmap fails, MAP_FAILED (that is, (void *) -1) is returned. Currently we assume that NULL is returned. Fix this and add the MAP_FAILED check. Fixes: 95741713e790 ("kexec/s390x: use mmap instead of read for slurp_file") Signed-off-by: Michael Holzheu Signed-off-by: Simon Horman --- kexec/kexec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kexec/kexec.c b/kexec/kexec.c index cf6e03d..f0bd527 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c @@ -573,7 +573,7 @@ static char *slurp_file_generic(const char *filename, off_t *r_size, buf = slurp_fd(fd, filename, size, &nread); } } - if (!buf) + if ((use_mmap && (buf == MAP_FAILED)) || (!use_mmap && (buf == NULL))) die("Cannot read %s", filename); if (nread != size) -- cgit