[systemd-devel] rdrand generated with march=winchip-c6 in systemd-241
Florian Weimer
fw at deneb.enyo.de
Sat May 11 16:30:40 UTC 2019
* tedheadster:
> Here is the full disassembly with a few comments:
>
> (gdb) disassemble
> Dump of assembler code for function rdrand:
> 0xb7e21440 <+0>: push %esi
> 0xb7e21441 <+1>: push %ebx
> 0xb7e21442 <+2>: call 0xb7e0af5d <__x86.get_pc_thunk.si>
> 0xb7e21447 <+7>: add $0x1acb39,%esi
> 0xb7e2144d <+13>: mov 0x2870(%esi),%ecx
> 0xb7e21453 <+19>: test %ecx,%ecx
> 0xb7e21455 <+21>: js 0xb7e21480 <rdrand+64>
> 0xb7e21457 <+23>: test %ecx,%ecx
> 0xb7e21459 <+25>: je 0xb7e214e0 <rdrand+160>
> 0xb7e2145f <+31>: rdrand %ecx <---- illegal instruction was
> attempted here
Can you capture register contents at the point of the crash?
Does this reproduce in a chroot? Maybe you can trace the whole thing
with a debugger. Does the crash reproduce if you single-step through
the whole function?
More information about the systemd-devel
mailing list