make-relative-prefix.c (make_relative_prefix_1): Fix resource leak.
authorMichael Snyder <msnyder@access-company.com>
Fri, 3 Aug 2007 17:38:14 +0000 (17:38 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 3 Aug 2007 17:38:14 +0000 (17:38 +0000)
* make-relative-prefix.c (make_relative_prefix_1): Fix resource
leak.

From-SVN: r127183

libiberty/ChangeLog
libiberty/make-relative-prefix.c

index aee3cc7..28e2c4f 100644 (file)
@@ -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.
index 037809e..be61040 100644 (file)
@@ -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--;