Fix potential use-after-free bugs.

ld/ChangeLog:

	* plugin.c (add_input_file): Take copy of input string.
	(add_input_library): Likewise.
	(set_extra_library_path): Likewise.
This commit is contained in:
Dave Korn 2010-10-15 16:09:36 +00:00
parent c3842ce50e
commit d4cb7acdd8
2 changed files with 11 additions and 3 deletions

View 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).

View 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;
}