mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-21 03:14:19 +08:00
getpearch.pl: the PE header offset may be > 255
The PE header offset field is not a byte; assume it is a long. The specification doesn't actually say... Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
parent
913394d52f
commit
c822585e77
@ -5,6 +5,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
|
use bytes;
|
||||||
|
|
||||||
my %archnames = (
|
my %archnames = (
|
||||||
0x01de => 'am33',
|
0x01de => 'am33',
|
||||||
@ -38,8 +39,8 @@ read($fh, my $mz, 2);
|
|||||||
exit 0 if ($mz ne 'MZ');
|
exit 0 if ($mz ne 'MZ');
|
||||||
|
|
||||||
exit 0 unless (seek($fh, 0x3c, 0));
|
exit 0 unless (seek($fh, 0x3c, 0));
|
||||||
exit 0 unless (read($fh, my $pe_offset, 1) == 1);
|
exit 0 unless (read($fh, my $pe_offset, 4) == 4);
|
||||||
$pe_offset = unpack("C", $pe_offset);
|
$pe_offset = unpack("V", $pe_offset);
|
||||||
|
|
||||||
exit 0 unless (seek($fh, $pe_offset, 0));
|
exit 0 unless (seek($fh, $pe_offset, 0));
|
||||||
read($fh, my $pe, 4);
|
read($fh, my $pe, 4);
|
||||||
|
Loading…
Reference in New Issue
Block a user