This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Commit: Fix buffer overflows in ld
- From: Nick Clifton <nickc at redhat dot com>
- To: binutils at sourceware dot org
- Date: Tue, 31 Jan 2017 12:06:37 +0000
- Subject: Commit: Fix buffer overflows in ld
- Authentication-results: sourceware.org; auth=none
Hi Guys,
I am applying the patch below to fix two buffer overflows in the
linker when it is printing fixed strings. The buffer used was big
enough for the English text, but when translated, the string could end
up being longer than the buffer. The solution was simple - since the
strings are static, no buffer is needed.
Cheers
Nick
ld/ChangeLog
2017-01-31 Nick Clifton <nickc@redhat.com>
* ldmain.c (add_archive_element): Eliminate string buffer.
* ldlang.c (lang_print_asneeded): Likewise.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index dafc348..1396c5b 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -2035,14 +2035,11 @@ static void
lang_print_asneeded (void)
{
struct asneeded_minfo *m;
- char buf[100];
if (asneeded_list_head == NULL)
return;
- sprintf (buf, _("\nAs-needed library included "
- "to satisfy reference by file (symbol)\n\n"));
- minfo ("%s", buf);
+ minfo (_("\nAs-needed library included to satisfy reference by file (symbol)\n\n"));
for (m = asneeded_list_head; m != NULL; m = m->next)
{
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 1e48b1a..e049de3 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -871,11 +871,7 @@ add_archive_element (struct bfd_link_info *info,
if (!header_printed)
{
- char buf[100];
-
- sprintf (buf, _("Archive member included "
- "to satisfy reference by file (symbol)\n\n"));
- minfo ("%s", buf);
+ minfo (_("Archive member included to satisfy reference by file (symbol)\n\n"));
header_printed = TRUE;
}