diff options
| author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-03 17:38:14 +0000 |
|---|---|---|
| committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-03 17:38:14 +0000 |
| commit | 2ffb8b10c80328a5f930f79b3eeec8d1bb4d9577 (patch) | |
| tree | c08be4735100482d4b109156e67c84652bd4a1c6 | |
| parent | 4ba4ab8d05fe7e989ca6d5fcaaf4f89e21d58c9b (diff) | |
| download | ppe42-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/ChangeLog | 5 | ||||
| -rw-r--r-- | libiberty/make-relative-prefix.c | 10 |
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--; |

