Bug 228688

Summary: invalid syntax results in interpreter seg fault
Product: [Fedora] Fedora Reporter: Robert Haas <robertmhaas>
Component: perlAssignee: Marcela Mašláňová <mmaslano>
Status: CLOSED CURRENTRELEASE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 8CC: jpazdziora, perl-devel
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: perl-5.10.0-1.f9 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-06-12 10:38:55 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Robert Haas 2007-02-14 14:37:17 UTC
Description of problem:

Attempting to execute the following code produces a segmentation fault:

sub frob {
    my ($r) = @_;
    sub {
        . 3;
    };
}

Version-Release number of selected component (if applicable): perl-5.8.8-10

How reproducible: Run the code above.

Steps to Reproduce:
1. Save the code above in a text file (6 lines) called "oops".
2. Type "perl < oops"
  
Actual results:
Seg fault

Expected results:
Syntax error

Additional info:
None

Comment 1 Robert Haas 2008-01-17 21:45:07 UTC
Problem still exists in perl-5.8.8-27.fc7

Comment 2 Jan Pazdziora 2008-02-28 13:03:19 UTC
Problem persists on:

$ rpm -q perl
perl-5.8.8-33.fc8.x86_64


Comment 3 Jan Pazdziora 2008-02-28 13:21:52 UTC
The backtrace looks like this:

Program terminated with signal 11, Segmentation fault.
#0  Perl_pad_free (my_perl=0x603010, po=4) at pad.c:1180
1180            SvPADTMP_off(PL_curpad[po]);
(gdb) bt
#0  Perl_pad_free (my_perl=0x603010, po=4) at pad.c:1180
#1  0x00002aaaaab05bb8 in Perl_op_clear (my_perl=0x603010, o=0x60cc00) at op.c:515
#2  0x00002aaaaab07d4b in Perl_op_free (my_perl=0x603010, o=0x60cc00) at op.c:379
#3  0x00002aaaaab07d0c in Perl_op_free (my_perl=0x603010, o=0x60cd10) at op.c:367
#4  0x00002aaaaab1228a in Perl_newATTRSUB (my_perl=0x603010, floor=103, o=<value
optimized out>, proto=0x0, attrs=0x0, block=0x60cd10) at op.c:4426
#5  0x00002aaaaab03638 in Perl_yyparse (my_perl=0x603010) at perly.y:364
#6  0x00002aaaaaae2c92 in S_parse_body (my_perl=0x603010, env=0x0,
xsinit=0x4017e0 <xs_init>) at perl.c:2212
#7  0x00002aaaaaae54e9 in perl_parse (my_perl=0x603010, xsinit=0x4017e0
<xs_init>, argc=2, argv=0x7fffa2dee488, env=0x0) at perl.c:1599
#8  0x0000000000401773 in main (argc=2, argv=0x7fffa2dee488, env=<value
optimized out>) at perlmain.c:97
(gdb)