commit: 548c5db10349d6a5ee3d8dbe1da14e55655ca530
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 20 03:04:07 2016 +0000
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Jun 20 03:04:07 2016 +0000
URL: https://gitweb.gentoo.org/proj/pax-utils.git/commit/?id=548c5db1
paxmacho: fix readmacho fd leakage on error
If the readmacho_fd helper returns an error for any reason,
we don't close the fd. Add logic to handle that scenario.
paxmacho.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/paxmacho.c b/paxmacho.c
index 142af6e..638453a 100644
--- a/paxmacho.c
+++ b/paxmacho.c
@@ -190,11 +190,15 @@ inline static uint32_t read_mach_header(fatobj *fobj,
void *addr)
fatobj *readmacho(const char *filename)
{
int fd;
+ fatobj *ret;
if ((fd = open(filename, O_RDONLY)) == -1)
return NULL;
- return readmacho_fd(filename, fd, 0);
+ ret = readmacho_fd(filename, fd, 0);
+ if (ret == NULL)
+ close(fd);
+ return ret;
}
fatobj *readmacho_fd(const char *filename, int fd, size_t len)