From b46e6f435a522bc95e353493c1da3e421d5445be Mon Sep 17 00:00:00 2001 From: midipix Date: Mon, 23 Nov 2015 01:12:26 -0500 Subject: pe_map_raw_image(): close fd as needed upon stat failure. --- src/logic/pe_map_raw_image.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/logic') diff --git a/src/logic/pe_map_raw_image.c b/src/logic/pe_map_raw_image.c index c248ce9..58f914b 100644 --- a/src/logic/pe_map_raw_image.c +++ b/src/logic/pe_map_raw_image.c @@ -12,11 +12,18 @@ int pe_map_raw_image (int fd, const char * path, int prot, struct pe_raw_image * { struct stat stat; bool fnew; + int ret; if (fnew = (fd < 0)) fd = open(path,O_RDONLY | O_CLOEXEC); - if ((fd < 0) || (fstat(fd,&stat) < 0)) + if (fd < 0) + return -1; + + if ((ret = fstat(fd,&stat) < 0) && fnew) + close(fd); + + if (ret < 0) return -1; map->size = stat.st_size; -- cgit v1.2.3