Misplaced parenthesis calculates two too few bytes for string

Factor out strlen to give better code and less likelihood of a repeat
of this problem.

	PR 17766
	* pei-x86_64.c (pex64_bfd_print_pdata_section): Correct string
	length.  Use memcpy rather than strcpy.
This commit is contained in:
Alan Modra 2014-12-28 15:28:19 +10:30
parent ce637ffbe6
commit de0d78958f
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2014-12-28 Alan Modra <amodra@gmail.com>
PR 17766
* pei-x86_64.c (pex64_bfd_print_pdata_section): Correct string
length. Use memcpy rather than strcpy.
2014-12-26 Alan Modra <amodra@gmail.com>
PR 17755

View File

@ -601,11 +601,12 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
section name, replacing .pdata by .xdata prefix. */
if (strcmp (pdata_section->name, ".pdata") != 0)
{
char *xdata_name = alloca (strlen (pdata_section->name + 1));
size_t len = strlen (pdata_section->name);
char *xdata_name = alloca (len + 1);
xdata_name = strcpy (xdata_name, pdata_section->name);
xdata_name = memcpy (xdata_name, pdata_section->name, len + 1);
/* Transform .pdata prefix into .xdata prefix. */
if (strlen (xdata_name) > 1)
if (len > 1)
xdata_name [1] = 'x';
xdata_section = pex64_get_section_by_rva (abfd, xdata_base,
xdata_name);