develooper Front page | perl.perl5.porters | Postings from January 2005

[perl #33945] Segmentation fault with deep recursion in regex engine

Thread Previous | Thread Next
From:
A. Pagaltzis
Date:
January 27, 2005 04:25
Subject:
[perl #33945] Segmentation fault with deep recursion in regex engine
Message ID:
rt-3.0.11-33945-106513.6.63892897902485@perl.org
# New Ticket Created by  "A. Pagaltzis" 
# Please include the string:  [perl #33945]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=33945 >


This is a bug report for perl from pagaltzis@gmx.de,
generated with the help of perlbug 1.35 running under perl v5.8.6.


-----------------------------------------------------------------

Deep recursion the regex engine causes a segfault. While there's
nothing that can really be done other than aborting the program
in that case, that should at least be done in orderly fashion.

The condition can easily be reproduced thusly:

	perl -le'my $rx; $rx=qr/(??{ $rx })/; ""=~$rx'

-----------------------------------------------------------------
---
Flags:
    category=core
    severity=low
---
Site configuration information for perl v5.8.6:

Configured by root at Sat Jan  1 19:32:19 PST 2005.

Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
  Platform:
    osname=linux, osvers=2.4.28, archname=i486-linux
    uname='linux midas 2.4.28 #6 tue dec 14 14:41:15 pst 2004 i686 unknown unknown gnulinux '
    config_args='-de -Dprefix=/usr -Dcccdlflags=-fPIC -Dinstallprefix=/usr -Doptimize=-O2 -march=i486 -mcpu=i686 -Dinc_version_list=5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 -Darchname=i486-linux'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -march=i486 -mcpu=i686',
    cppflags='-fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='3.3.4', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.3.3.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.3.3'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
    

---
@INC for perl v5.8.6:
    /home/ap/perl/lib/
    /home/ap/lib/i386-linux
    /home/ap/lib
    /home/ap/lib/site_perl/i386-linux
    /home/ap/lib/site_perl
    /home/ap/lib/site_perl
    /usr/lib/perl5/5.8.6/i486-linux
    /usr/lib/perl5/5.8.6
    /usr/lib/perl5/site_perl/5.8.6/i486-linux
    /usr/lib/perl5/site_perl/5.8.6
    /usr/lib/perl5/site_perl/5.8.4
    /usr/lib/perl5/site_perl/5.8.3
    /usr/lib/perl5/site_perl/5.8.0
    /usr/lib/perl5/site_perl
    .

---
Environment for perl v5.8.6:
    HOME=/home/ap
    LANG=C
    LANGUAGE (unset)
    LC_ALL=C
    LD_LIBRARY_PATH=/home/ap/lib/:/opt/firefox/
    LOGDIR (unset)
    PATH=/home/ap/bin:/opt/firefox:/home/ap/bin:/opt/firefox:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:/usr/lib/java/bin:/usr/lib/java/jre/bin:/usr/lib/qt/bin:/usr/share/texmf/bin:.:/sbin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/sbin:/usr/sbin
    PERL5LIB=/home/ap/perl/lib/:/home/ap/lib/i386-linux:/home/ap/lib:/home/ap/lib/site_perl/i386-linux:/home/ap/lib/site_perl:/home/ap/lib/site_perl
    PERL_BADLANG (unset)
    SHELL=/bin/bash


Thread Previous | Thread Next


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