[pcre-dev] [Bug 1803] segfault in pcre jit when running twig…

Page principale
Supprimer ce message
Auteur: admin
Date:  
À: pcre-dev
Sujet: [pcre-dev] [Bug 1803] segfault in pcre jit when running twig test suite (PHP7)
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.