summaryrefslogtreecommitdiff
path: root/base/gp_unifs.c
diff options
context:
space:
mode:
Diffstat (limited to 'base/gp_unifs.c')
-rw-r--r--base/gp_unifs.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/base/gp_unifs.c b/base/gp_unifs.c
index e23b1dc5d..51ce4e45a 100644
--- a/base/gp_unifs.c
+++ b/base/gp_unifs.c
@@ -388,14 +388,14 @@ gp_enumerate_files_init(const char *pat, uint patlen, gs_memory_t * mem)
(char *)gs_alloc_bytes(mem, patlen + 1,
"gp_enumerate_files(pattern)");
if (pfen->pattern == 0)
- return 0;
+ goto fail1;
memcpy(pfen->pattern, pat, patlen);
pfen->pattern[patlen] = 0;
work = (char *)gs_alloc_bytes(mem, FILENAME_MAX + 1,
"gp_enumerate_files(work)");
if (work == 0)
- return 0;
+ goto fail2;
pfen->work = work;
p = work;
@@ -429,6 +429,12 @@ gp_enumerate_files_init(const char *pat, uint patlen, gs_memory_t * mem)
}
return pfen;
+
+fail2:
+ gs_free_object(mem, pfen->pattern, "gp_enumerate_files(pattern)");
+fail1:
+ gs_free_object(mem, pfen, "gp_enumerate_files");
+ return NULL;
#endif
}