Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5.10.0 Attribute::Handlers segmentation fault #9409

Closed
p5pRT opened this issue Jul 10, 2008 · 8 comments
Closed

5.10.0 Attribute::Handlers segmentation fault #9409

p5pRT opened this issue Jul 10, 2008 · 8 comments

Comments

@p5pRT
Copy link

p5pRT commented Jul 10, 2008

Migrated from rt.perl.org#56766 (status was 'resolved')

Searchable as RT56766$

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2008

From @naquad

Created by @naquad

I've been expirementing with Attribute​::Handlers and found that
next code segfaults perl​:

Declaration.pm​:

package Declaration;
use strict;
use Data​::Dumper;
use Attribute​::Handlers;

sub Test : ATTR {
  print Data​::Dumper->Dump([\@​_],'@​_');
}

1;

Parent.pm​:

package Parent;
use strict;
use base qw(Declaration);

sub test : Test {}

1;

Child.pm​:

package Child;
use strict;
use base qw(Parent);

sub test2 : Test {}

1;

All 3 are in the same directory.

Running​:

naquad@​Naquad$ perl Child.pm
Segmentation fault.
naquad@​Naquad$ perl -c Child.pm
Segmentation fault.

The same happens on use Child.
But require Child works fine.

Perl Info

Flags:
    category=library
    severity=low

Site configuration information for perl 5.10.0:

Configured by Debian Project at Thu May  8 13:32:42 UTC 2008.

Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=linux, osvers=2.6.24.4, archname=i486-linux-gnu-thread-multi
    uname='linux ninsei 2.6.24.4 #1 smp preempt fri apr 18 15:36:09 pdt 2008 i686 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.0 -Dsitearch=/usr/local/lib/perl/5.10.0 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.10.0 -Dd_dosuid -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.2.3 (Debian 4.2.3-5)', 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 /usr/lib64
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=/lib/libc-2.7.so, so=so, useshrplib=true, libperl=libperl.so.5.10.0
    gnulibc_version='2.7'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib'

Locally applied patches:
    


@INC for perl 5.10.0:
    /etc/perl
    /usr/local/lib/perl/5.10.0
    /usr/local/share/perl/5.10.0
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.10
    /usr/share/perl/5.10
    /usr/local/lib/site_perl
    .


Environment for perl 5.10.0:
    HOME=/home/naquad
    LANG=ru_UA.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
    PERL_BADLANG (unset)
    SHELL=/bin/bash


@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2008

From bitcard@profvince.com

As documented, the second argument of Data​::Dumper​::Dump must be an
array reference. Your syntax was incorrectly accepted in 5.8.

It's accepted in the current version because of a typo in the argument
checking of Data​::Dumper​::new. Patch attached.

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2008

From bitcard@profvince.com

ddsegv.patch
--- ext/Data/Dumper/Dumper.pm	2008-07-10 18:01:30.000000000 +0200
+++ ext/Data/Dumper/Dumper.pm	2008-07-10 18:02:05.000000000 +0200
@@ -65,7 +65,7 @@
 
   croak "Usage:  PACKAGE->new(ARRAYREF, [ARRAYREF])" 
     unless (defined($v) && (ref($v) eq 'ARRAY'));
-  $n = [] unless (defined($n) && (ref($v) eq 'ARRAY'));
+  $n = [] unless (defined($n) && (ref($n) eq 'ARRAY'));
 
   my($s) = { 
              level      => 0,           # current recursive depth

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2008

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2008

From perl@profvince.com

Cc'd to p5p - see http​://rt.perl.org/rt3/Ticket/Display.html?id=56766

Vincent.

@p5pRT
Copy link
Author

p5pRT commented Jul 10, 2008

From perl@profvince.com

ddsegv.patch
--- ext/Data/Dumper/Dumper.pm	2008-07-10 18:01:30.000000000 +0200
+++ ext/Data/Dumper/Dumper.pm	2008-07-10 18:02:05.000000000 +0200
@@ -65,7 +65,7 @@
 
   croak "Usage:  PACKAGE->new(ARRAYREF, [ARRAYREF])" 
     unless (defined($v) && (ref($v) eq 'ARRAY'));
-  $n = [] unless (defined($n) && (ref($v) eq 'ARRAY'));
+  $n = [] unless (defined($n) && (ref($n) eq 'ARRAY'));
 
   my($s) = { 
              level      => 0,           # current recursive depth

@p5pRT
Copy link
Author

p5pRT commented Aug 2, 2008

From p5p@spam.wizbit.be

Patch applied with change 34163 and 34165

http​://public.activestate.com/cgi-bin/perlbrowse/p/34163
Change 34163 by merijn@​merijn-nb09 on 2008/07/30 15​:57​:49

  Subject​: [perl #56766] [PATCH]
  From​: Vincent Pit <perl@​profvince.com>
  Date​: Thu, 10 Jul 2008 18​:10​:10 +0200
  Message-ID​: <48763462.7020506@​profvince.com>

http​://public.activestate.com/cgi-bin/perlbrowse/p/34165
Change 34165 by merijn@​merijn-pc09 on 2008/07/30 19​:51​:23

  Subject​: [PATCH] Version bump for Data​::Dumper
  From​: "Jerry D. Hedden" <jdhedden@​cpan.org>
  Date​: Wed, 30 Jul 2008 12​:54​:34 -0400
  Message-ID​:
<1ff86f510807300954y5451ce9eq3181169e83bc3a10@​mail.gmail.com>

@p5pRT
Copy link
Author

p5pRT commented Aug 2, 2008

p5p@spam.wizbit.be - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant