summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2014-05-15 10:18:38 +0100
committerPhilip Withnall <philip.withnall@collabora.co.uk>2014-05-15 14:35:19 +0100
commit60e459b196947c9c9aaa6fd14ca682ddf9f7a492 (patch)
treee9da97ed5f1a2e99243a21170a21b07250ffd748
parent46b7217fbf02b679749cf1d042ecc57504a3b97c (diff)
gresource-tool: Fix an FD leak in an error path
Coverity issues: #1214054, #1214055, #1214056
-rw-r--r--gio/gresource-tool.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gio/gresource-tool.c b/gio/gresource-tool.c
index f751f504d..634a83af3 100644
--- a/gio/gresource-tool.c
+++ b/gio/gresource-tool.c
@@ -151,10 +151,18 @@ get_elf (const gchar *file,
elf = elf_begin (*fd, ELF_C_READ, NULL);
if (elf == NULL)
- return NULL;
+ {
+ g_close (*fd, NULL);
+ *fd = -1;
+ return NULL;
+ }
if (elf_kind (elf) != ELF_K_ELF)
- return NULL;
+ {
+ g_close (*fd, NULL);
+ *fd = -1;
+ return NULL;
+ }
return elf;
}