This is a bug report for perl from dmitry@karasik.eu.org,
generated with the help of perlbug 1.41 running under perl 5.30.1.
[Please describe your issue here]
Hello
I observed a coredump with the following code:
use B;
my $self;
my $sub = sub { $self->{h1}{h2}{h3}{v} == 1 };
my $cv = B::svref_2object($sub);
my $op = $cv->ROOT->first->first->next;
my @Items = $op->aux_list($cv); # <-- coredumps here
The stack is:
#0 Perl_pp_aassign () at pp_hot.c:2394
2394 if (SvTEMP(rsv) && !SvGMAGICAL(rsv) && SvREFCNT(rsv) == 1) {
(gdb) bt
#0 Perl_pp_aassign () at pp_hot.c:2394
#1 0xb73fedcd in Perl_runops_debug () at dump.c:2537
#2 0xb736a3a7 in S_run_body (oldscope=1) at perl.c:2716
#3 perl_run (my_perl=0xb82c2008) at perl.c:2639
Valgrind output:
==8845== Use of uninitialised value of size 4
==8845== at 0x23E684: Perl_pp_aassign (pp_hot.c:2394)
==8845== by 0x202DCC: Perl_runops_debug (dump.c:2537)
==8845== by 0x16E3A6: S_run_body (perl.c:2716)
==8845== by 0x16E3A6: perl_run (perl.c:2639)
==8845== by 0x133DF5: main (perlmain.c:127)
Seems to be introduced by this commit:
commit 8b0c337
Author: David Mitchell davem@iabyn.com
Date: Wed Oct 5 10:10:56 2016 +0100
I could only reproduce it on i686-linux architecture. The module
(DBIx::Perlish) that stumbles upon that problem, also has problems on
armv6l-linux and i386-freebsd, but never on amd64/x86_64
( http://matrix.cpantesters.org/?dist=DBIx-Perlish ).
Regards,
Dmitry Karasik
Site configuration information for perl 5.30.1:
Configured by dk at Sat Nov 16 22:06:12 CET 2019.
Summary of my perl5 (revision 5 version 30 subversion 1) configuration:
Platform:
osname=linux
osvers=3.2.0-4-686-pae
archname=i686-linux
uname='linux udayin 3.2.0-4-686-pae #1 smp debian 3.2.65-1 i686 gnulinux '
config_args='-de -Dprefix=/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug -Dman1dir=none -Dman3dir=none -DDEBUGGING -Aeval:scriptdir=/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/bin'
hint=recommended
useposix=true
d_sigaction=define
useithreads=undef
usemultiplicity=undef
use64bitint=undef
use64bitall=undef
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
bincompat5005=undef
Compiler:
cc='cc'
ccflags ='-fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
optimize='-O2 -g'
cppflags='-fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='6.3.0 20170516'
gccosandvers=''
intsize=4
longsize=4
ptrsize=4
doublesize=8
byteorder=1234
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=12
longdblkind=3
ivtype='long'
ivsize=4
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=4
prototype=define
Linker and Libraries:
ld='cc'
ldflags =' -fstack-protector-strong -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib/gcc/i686-linux-gnu/6/include-fixed /usr/include/i386-linux-gnu /usr/lib /lib/i386-linux-gnu /lib/../lib /usr/lib/i386-linux-gnu /usr/lib/../lib /lib
libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.24.so
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version='2.24'
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags='-Wl,-E'
cccdlflags='-fPIC'
lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'
Locally applied patches:
Devel::PatchPerl 1.66
@inc for perl 5.30.1:
/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/lib/site_perl/5.30.1/i686-linux
/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/lib/site_perl/5.30.1
/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/lib/5.30.1/i686-linux
/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/lib/5.30.1
Environment for perl 5.30.1:
HOME=/home/dk
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/home/dk/perl5/perlbrew/bin:/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/local/site/bin:/usr/local/site/sbin:/home/dk/bin
PERLBREW_HOME=/home/dk/.perlbrew
PERLBREW_MANPATH=/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/man
PERLBREW_PATH=/home/dk/perl5/perlbrew/bin:/home/dk/perl5/perlbrew/perls/perl-5.30.1-debug/bin
PERLBREW_PERL=perl-5.30.1-debug
PERLBREW_ROOT=/home/dk/perl5/perlbrew
PERLBREW_SHELLRC_VERSION=0.87
PERLBREW_VERSION=0.87
PERL_BADLANG (unset)
SHELL=/usr/bin/zsh
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4