https://bugs.exim.org/show_bug.cgi?id=1803
--- Comment #37 from Zoltan Herczeg <hzmester@???> ---
> 0x00007ffff799b6f9 <_pcre_jit_exec+329>: testb $0x20,(%rbx)
> 0x00007ffff799b6fc <_pcre_jit_exec+332>: je 0x7ffff799b70a <_pcre_jit_exec+346>
> 0x00007ffff799b6fe <_pcre_jit_exec+334>: mov 0x30(%rbx),%rdx
> 0x00007ffff799b702 <_pcre_jit_exec+338>: mov 0x30(%rsp),%rcx
> 0x00007ffff799b707 <_pcre_jit_exec+343>: mov %rcx,(%rdx)
> => 0x00007ffff799b70a <_pcre_jit_exec+346>: mov 0x58(%rsp),%rbx
> 0x00007ffff799b70f <_pcre_jit_exec+351>: xor %fs:0x28,%rbx
> 0x00007ffff799b718 <_pcre_jit_exec+360>: jne 0x7ffff799b761
gdb usually stops after the write, so this is likely the offending instruction:
mov %rcx,(%rdx)
It is hard to tell the corresponding source code from the assembly but I think
it is the following source code:
if ((extra_data->flags & PCRE_EXTRA_MARK) != 0)
*(extra_data->mark) = arguments.mark_ptr;
Could you check that PCRE_EXTRA_MARK is set in extra_data->flags? And please
also check where the extra_data->mark points.
PCRE_EXTRA_MARK is 0x20
And there is the comparison with 0x20 just before the overwrite: testb
$0x20,(%rbx).
--
You are receiving this mail because:
You are on the CC list for the bug.