ndisasm sometimes outputs addresses plus 0x100000000 on amd64
Bug #51374 reported by
Nico R.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
NASM |
Unknown
|
Unknown
|
|||
nasm (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Binary package hint: nasm
I'm using nasm-0.98.38-1.2 on Dapper on amd64. Here is a small test program to show a problem in ndisasm:
; test.asm:
bits 32
org 0xefb58
call 0xef980
Assemble with:
nasm -o test.bin test.asm
Then, disassemble with ndisasm:
ndisasm -b 32 -i -o 0xefb58 test.bin
Result:
000EFB58 E823FEFFFF call 0x1000ef980
Expected result:
000EFB58 E823FEFFFF call 0xef980
This seems to happen with relative calls to lower memory addresses (negative values).
IIRC, this works on i386 architectures, so I suppose that the ndisasm code expects an overflow of a variable at 0x100000000, but that is not true on 64-bit architectures.
Changed in nasm: | |
status: | Confirmed → Triaged |
To post a comment you must log in.
Thank you for your bug report. Do you still have this issue with the latest release of Ubuntu ?