Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.85k stars 527 forks source link

Data::Dumper causes Attempt to free unreferenced scalar during global destruction #2209

Closed p5pRT closed 20 years ago

p5pRT commented 23 years ago

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

Searchable as RT3508$

p5pRT commented 23 years ago

From rantapaa@fanbuzz.com

Running the following script causes three instances of the message​:

Attempt to free unreferenced scalar during global destruction.

to be printed out at run time. The number of messages is directly related to the number of 'x' field members (i.e. the number of uninitialized field members before the 'z' field.) The Data​::Dumper version is 2.101.

package AAA;

use fields qw(x1 x2 x3 z);

sub new {   my $class = shift;   no strict 'refs';   my $self = bless [\%{"$class\​::FIELDS"}]\, $class;   $self; }

package main;

use Data​::Dumper;

$A = new AAA(); $A->{'z'} = "asd";

print :​:Dumper($A)\, "\n";

Perl Info ``` Site configuration information for perl 5.00503: Configured by root at Wed Feb 2 15:34:50 EST 2000. Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration: Platform: osname=linux, osvers=2.2.5-22smp, archname=i386-linux uname='linux porky.devel.redhat.com 2.2.5-22smp #1 smp wed jun 2 09:11:51 edt 1999 i686 unknown ' hint=recommended, useposix=true, d_sigaction=define usethreads=undef useperlio=undef d_sfio=undef Compiler: cc='cc', optimize='-O2 -m486 -fno-strength-reduce', gccversion=egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) cppflags='-Dbool=char -DHAS_BOOL -I/usr/local/include' ccflags ='-Dbool=char -DHAS_BOOL -I/usr/local/include' stdchar='char', d_stdstdio=undef, usevfork=false intsize=4, longsize=4, ptrsize=4, doublesize=8 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 alignbytes=4, usemymalloc=n, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -ldl -lm -lc -lposix -lcrypt libc=, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Locally applied patches: @INC for perl 5.00503: /usr/lib/perl5/5.00503/i386-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i386-linux /usr/lib/perl5/site_perl/5.005 . Environment for perl 5.00503: HOME=/home/rantapaa LANG=en_US LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/rantapaa/bin PERL_BADLANG (unset) SHELL=/bin/bash ```
p5pRT commented 23 years ago

From @jhi

On Fri\, Jul 14\, 2000 at 11​:32​:43AM -0500\, Erik Rantapaa wrote​:

This is bug report from rantapaa@​fanbuzz.com generated with the help of perlbug 1.26 running under perl 5.00503.

----------------------------------------------------------------- [Please enter your report here]

Running the following script causes three instances of the message​:

Attempt to free unreferenced scalar during global destruction.

to be printed out at run time. The number of messages is directly related to the number of 'x' field members (i.e. the number of uninitialized field members before the 'z' field.) The Data​::Dumper version is 2.101.

This has been fixed in perl 5.6.0.