summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2015-11-26 18:32:31 +0100
committerSimon Horman <horms@verge.net.au>2015-11-27 09:06:39 +0900
commit56a12abc1df1a019327c8958f6346f53935ec3fc (patch)
tree8739522421d9b775ece7bd5d107490c2772f0410
parent0e1030b345b9e7c1c64b85dde32a282a19b825f0 (diff)
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 <holzheu@linux.vnet.ibm.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/kexec.c2
1 files changed, 1 insertions, 1 deletions
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)