Fix generation of IDATA[6] for PE files.

PR ld/20880
	* pe-dll.c (make_one): Use the hint if the ordinal is -1.
This commit is contained in:
Rudy Y 2016-12-01 14:43:36 +00:00 committed by Nick Clifton
parent cec4b2e3fe
commit 4ee1d7e401
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2016-12-01 Rudy Y <rudyy.id@gmail.com>
PR ld/20880
* pe-dll.c (make_one): Use the hint if the ordinal is -1.
2016-12-01 Yury Norov <ynorov@caviumnetworks.com>
PR ld/20868

View File

@ -2266,6 +2266,8 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
}
else
{
int ord;
/* { short, asciz } */
if (exp->its_name)
len = 2 + strlen (exp->its_name) + 1;
@ -2277,8 +2279,13 @@ make_one (def_file_export *exp, bfd *parent, bfd_boolean include_jmp_stub)
d6 = xmalloc (len);
id6->contents = d6;
memset (d6, 0, len);
d6[0] = exp->hint & 0xff;
d6[1] = exp->hint >> 8;
/* PR 20880: Use exp->hint as a backup, just in case exp->ordinal
contains an invalid value (-1). */
ord = (exp->ordinal >= 0) ? exp->ordinal : exp->hint;
d6[0] = ord;
d6[1] = ord >> 8;
if (exp->its_name)
strcpy ((char*) d6 + 2, exp->its_name);
else