summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-03 17:38:14 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-03 17:38:14 +0000
commit2ffb8b10c80328a5f930f79b3eeec8d1bb4d9577 (patch)
treec08be4735100482d4b109156e67c84652bd4a1c6
parent4ba4ab8d05fe7e989ca6d5fcaaf4f89e21d58c9b (diff)
downloadppe42-gcc-2ffb8b10c80328a5f930f79b3eeec8d1bb4d9577.tar.gz
ppe42-gcc-2ffb8b10c80328a5f930f79b3eeec8d1bb4d9577.zip
* make-relative-prefix.c (make_relative_prefix_1): Fix resource
leak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127183 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libiberty/ChangeLog5
-rw-r--r--libiberty/make-relative-prefix.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index aee3cc76f57..28e2c4fab3a 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-03 Michael Snyder <msnyder@access-company.com>
+
+ * make-relative-prefix.c (make_relative_prefix_1): Fix resource
+ leak.
+
2007-07-31 Michael Snyder <msnyder@access-company.com>
* cp-demangle.c (d_print_comp): Guard against null.
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
index 037809e34ed..be61040e18c 100644
--- a/libiberty/make-relative-prefix.c
+++ b/libiberty/make-relative-prefix.c
@@ -299,11 +299,17 @@ make_relative_prefix_1 (const char *progname, const char *bin_prefix,
full_progname = strdup(progname);
prog_dirs = split_directories (full_progname, &prog_num);
- bin_dirs = split_directories (bin_prefix, &bin_num);
free (full_progname);
- if (bin_dirs == NULL || prog_dirs == NULL)
+ if (prog_dirs == NULL)
return NULL;
+ bin_dirs = split_directories (bin_prefix, &bin_num);
+ if (bin_dirs == NULL)
+ {
+ free_split_directories (prog_dirs);
+ return NULL;
+ }
+
/* Remove the program name from comparison of directory names. */
prog_num--;
OpenPOWER on IntegriCloud