develooper Front page | perl.perl5.porters | Postings from October 2016

[perl #129903] regexec.c stack overflow

Thread Previous
From:
Brian Carpenter
Date:
October 17, 2016 17:26
Subject:
[perl #129903] regexec.c stack overflow
Message ID:
rt-4.0.24-2453-1476725179-1698.129903-75-0@perl.org
# New Ticket Created by  Brian Carpenter 
# Please include the string:  [perl #129903]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=129903 >


I'm not convinced that this is an actual bug, but #p5p was silent when I
asked about it. Affects Perl back to 5.20.2 including v5.25.6
(v5.25.5-114-g87af8d5). Valgrind fails pretty quickly but gdb just goes on
forever.

perl -e '/(?{m}(0)},s\/\/\/})//0'

==6615==ERROR: AddressSanitizer: stack-overflow on address 0x7ffc78f88ca8
(pc 0x0000004c0d4c bp 0x7ffc78f89500 sp 0x7ffc78f88cb0 T0)
    #0 0x4c0d4b in calloc (/root/perl/perl+0x4c0d4b)
    #1 0x7f9301 in Perl_safesyscalloc /root/perl/util.c:442:18
    #2 0xb45aed in Perl_regexec_flags /root/perl/regexec.c:3128:9
    #3 0x8cf9c5 in Perl_pp_subst /root/perl/pp_hot.c:2981:10
    #4 0x7f4483 in Perl_runops_debug /root/perl/dump.c:2246:23
    #5 0xb984b6 in S_regmatch /root/perl/regexec.c:6888:3
    #6 0xb7337c in S_regtry /root/perl/regexec.c:3622:14
...
...
    #247 0xb4b82b in Perl_regexec_flags /root/perl/regexec.c:3489:7
    #248 0x8cf9c5 in Perl_pp_subst /root/perl/pp_hot.c:2981:10
    #249 0x7f4483 in Perl_runops_debug /root/perl/dump.c:2246:23
    #250 0xb984b6 in S_regmatch /root/perl/regexec.c:6888:3
    #251 0xb7337c in S_regtry /root/perl/regexec.c:3622:14

SUMMARY: AddressSanitizer: stack-overflow ??:0 calloc
==6615==ABORTING

==19424== Stack overflow in thread 1: can't grow stack to 0xffe801f90
==19424==
==19424== Process terminating with default action of signal 11 (SIGSEGV)
==19424==  Access not within mapped region at address 0xFFE801F90
==19424==    at 0x5B4137: S_regtry (regexec.c:3578)
==19424==  If you believe this happened as a result of a stack
==19424==  overflow in your program's main thread (unlikely but
==19424==  possible), you can try to increase the size of the
==19424==  main thread stack using the --main-stacksize= flag.
==19424==  The main thread stack size used in this run was 8388608.
==19424== Stack overflow in thread 1: can't grow stack to 0xffe801f88
==19424==
==19424== Process terminating with default action of signal 11 (SIGSEGV)
==19424==  Access not within mapped region at address 0xFFE801F88
==19424==    at 0x4A236C0: _vgnU_freeres (vg_preloaded.c:58)
==19424==  If you believe this happened as a result of a stack
==19424==  overflow in your program's main thread (unlikely but
==19424==  possible), you can try to increase the size of the
==19424==  main thread stack using the --main-stacksize= flag.
==19424==  The main thread stack size used in this run was 8388608.
Segmentation fault


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About