Fix potential use-after-free bugs.
authorDave Korn <dave.korn@artimi.com>
Fri, 15 Oct 2010 16:09:36 +0000 (16:09 +0000)
committerDave Korn <dave.korn@artimi.com>
Fri, 15 Oct 2010 16:09:36 +0000 (16:09 +0000)
ld/ChangeLog:

* plugin.c (add_input_file): Take copy of input string.
(add_input_library): Likewise.
(set_extra_library_path): Likewise.

ld/ChangeLog
ld/plugin.c

index d171298e810d94de956f52c98cc49714b0d40570..85c784af459087ebb2bbeedb2ce69fd10bc25b59 100644 (file)
@@ -1,3 +1,9 @@
+2010-10-15  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * plugin.c (add_input_file): Take copy of input string.
+       (add_input_library): Likewise.
+       (set_extra_library_path): Likewise.
+
 2010-10-14  Dave Korn  <dave.korn.cygwin@gmail.com> 
 
        Apply LD plugin patch series (part 6/6).
index b484bd045a5d418c95597b18292e0542155ea673..0c88ef8beafedb9576cf868180cb8fa70a6101b3 100644 (file)
@@ -433,7 +433,8 @@ static enum ld_plugin_status
 add_input_file (const char *pathname)
 {
   ASSERT (called_plugin);
-  if (!lang_add_input_file (pathname, lang_input_file_is_file_enum, NULL))
+  if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_file_enum,
+       NULL))
     return LDPS_ERR;
   return LDPS_OK;
 }
@@ -443,7 +444,8 @@ static enum ld_plugin_status
 add_input_library (const char *pathname)
 {
   ASSERT (called_plugin);
-  if (!lang_add_input_file (pathname, lang_input_file_is_l_enum, NULL))
+  if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_l_enum,
+       NULL))
     return LDPS_ERR;
   return LDPS_OK;
 }
@@ -454,7 +456,7 @@ static enum ld_plugin_status
 set_extra_library_path (const char *path)
 {
   ASSERT (called_plugin);
-  ldfile_add_library_path (path, FALSE);
+  ldfile_add_library_path (xstrdup (path), FALSE);
   return LDPS_OK;
 }