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

Segfault/assert fail while requiring IO::File in an attempt to resolve a missing method on a hash, hv_common expects SVt_PVHV but got SVt_PV #14939

Open
p5pRT opened this issue Sep 25, 2015 · 12 comments

Comments

@p5pRT
Copy link

p5pRT commented Sep 25, 2015

Migrated from rt.perl.org#126188 (status was 'open')

Searchable as RT126188$

@p5pRT
Copy link
Author

p5pRT commented Sep 25, 2015

From @dcollinsn

Greetings Porters,

I have compiled bleadperl with the afl-gcc compiler using​:

./Configure -Dusedevel -Dprefix='/usr/local/perl-afl' -Dcc='ccache afl-gcc' -Duselongdouble -Duse64bitint -Doptimize=-g -Uversiononly -Uman1dir -Uman3dir -des
AFL_HARDEN=1 make && make test

And then fuzzed the resulting binary using​:

AFL_NO_VAR_CHECK=1 afl-fuzz -i in -o out bin/perl @​@​

After reducing testcases using `afl-tmin` and filtering out testcases that are merely iterations of "#!perl -u", I have located the following testcase that triggers a segmentation fault in the perl interpreter. The testcase is the 19-character file​:

%0=f fffff%​::=fffff

which was further manually reduced to the 8-character file​:

f f%​::=f

Debugging perls instead report​:

miniperl​: hv.c​:355​: Perl_hv_common​: Assertion `((svtype)((hv)->sv_flags & 0xff)) == SVt_PVHV' failed.

Expected behavior is the same as the similar test 'f f$​::=f', which crashes with "Can't locate object method "f" via package "f" (perhaps you forgot to load "f"?)". Once upon a time that happened, however, interestingly, that changed when xdg added code to automatically require IO​::File when a filehandle method call would fail because the method would not be found (see bisect). What's more, I tested​:

dcollins@​nightshade​:/usr/local/perl-afl/out$ ../bin/perl -e 'f f%​::=f'
Segmentation fault
dcollins@​nightshade​:/usr/local/perl-afl/out$ ../bin/perl -MIO​::File -e 'f f%​::=f'
Can't locate object method "f" via package "IO​::File" at -e line 1.

So it seems like this is some weird case of an error while loading the module in this way, or loading it while this odd construct is on the stack.

**GDB**

dcollins@​nightshade​:~/perl$ gdb --args ./perl ../crash
GNU gdb (GDB) 7.10
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+​: GNU GPL version 3 or later <http​://gnu.org/licenses/gpl.html>
This is free software​: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see​:
<http​://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at​:
<http​://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./perl...done.
(gdb) run
Starting program​: /home/dcollins/perl/perl ../crash
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x08325e4c in Perl_hv_common (hv=0x87db2e0, keysv=0x0,
  key=0x8725f9f "require", klen=7, flags=<optimized out>, action=32,
  val=0x0, hash=603707530) at hv.c​:671
671 if (HeHASH(entry) != hash) /* strings can't be equal */
(gdb) bt
#0 0x08325e4c in Perl_hv_common (hv=0x87db2e0, keysv=0x0,
  key=0x8725f9f "require", klen=7, flags=<optimized out>, action=32,
  val=0x0, hash=603707530) at hv.c​:671
#1 0x083288c6 in Perl_hv_common_key_len (hv=0x87db2e0,
  key=0x8725f9f "require", klen_i32=7, action=32, val=0x0, hash=0)
  at hv.c​:333
#2 0x0813d436 in Perl_gv_override (name=0x8725f9f "require", len=7)
  at gv.c​:3592
#3 0x080cdf4f in Perl_ck_require (o=0x87eb844) at op.c​:10644
#4 0x080a4ad7 in Perl_newUNOP (type=339, flags=<optimized out>,
  first=0x87eb864) at op.c​:4809
#5 0x081cf859 in Perl_yyparse (gramtype=258) at perly.y​:1004
#6 0x0846d51d in S_doeval (gimme=gimme@​entry=1,
  outside=outside@​entry=0x87db420, seq=<optimized out>, hh=0x0)
  at pp_ctl.c​:3391
#7 0x084d05c6 in Perl_pp_entereval () at pp_ctl.c​:4198
#8 0x080fda66 in Perl_eval_sv (sv=0x87dbbdc, flags=4) at perl.c​:2882
#9 0x080fe602 in Perl_require_pv (pv=0x87489bf "IO/File.pm") at perl.c​:2989
#10 0x08121ddd in Perl_gv_fetchmethod_pvn_flags (stash=0x87ebb94,
  name=<optimized out>, len=1, flags=768) at gv.c​:1088
#11 0x0812319a in Perl_gv_fetchmethod_sv_flags (stash=0x87ebb94,
  namesv=0x87ec3c8, flags=768) at gv.c​:1001
#12 0x0837efa7 in Perl_pp_method_named () at pp_hot.c​:3783
#13 0x0835103b in Perl_runops_standard () at run.c​:41
---Type <return> to continue, or q <return> to quit---
#14 0x08116f27 in S_run_body (oldscope=1) at perl.c​:2456
#15 perl_run (my_perl=0x87d9008) at perl.c​:2379
#16 0x08068992 in main (argc=2, argv=0xbffff4c4, env=0xbffff4d0)
  at perlmain.c​:116
(gdb) p entry
$1 = (HE *) 0x45524f43
(gdb) p hash
$2 = 603707530
(gdb) p *((HE *) entry)
Cannot access memory at address 0x45524f43
(gdb) q
A debugging session is active.

  Inferior 1 [process 6902] will be killed.

Quit anyway? (y or n) y

'entry' is set to this value on line 637, entry = (HvARRAY(hv))[hash & (I32) HvMAX(hv)];
where,
(gdb) p hash
$3 = 4130847814
(gdb) p hv
$4 = (HV *) 0x822e2e0
(gdb) p *hv
$5 = {sv_any = 0x822ef58, sv_refcnt = 1, sv_flags = 268452867, sv_u = {
  svu_pv = 0x82393e4 "CORE", svu_iv = 136549348, svu_uv = 136549348,
  svu_rv = 0x82393e4, svu_rx = 0x82393e4, svu_array = 0x82393e4,
  svu_hash = 0x82393e4, svu_gp = 0x82393e4, svu_fp = 0x82393e4}}

sv_flags decodes to 0x10004403, SVf_IsCOW | SVp_POK | SVf_POK | SVt_PV. I'm not sure if sv_flags is corrupted here or if sv_u is, but entry is getting "CORE" written to it (0x45524f43 decodes to "EROC") instead of a pointer value.

**VALGRIND**

dcollins@​nightshade​:~/perl$ valgrind ./perl ../crash
==11682== Memcheck, a memory error detector
==11682== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==11682== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==11682== Command​: ./perl ../crash
==11682==
==11682== Invalid read of size 4
==11682== at 0x8325E4C​: Perl_hv_common (hv.c​:671)
==11682== by 0x83288C5​: Perl_hv_common_key_len (hv.c​:333)
==11682== by 0x813D435​: Perl_gv_override (gv.c​:3592)
==11682== by 0x80CDF4E​: Perl_ck_require (op.c​:10644)
==11682== by 0x80A4AD6​: Perl_newUNOP (op.c​:4809)
==11682== by 0x81CF858​: Perl_yyparse (perly.y​:1004)
==11682== by 0x846D51C​: S_doeval (pp_ctl.c​:3391)
==11682== by 0x84D05C5​: Perl_pp_entereval (pp_ctl.c​:4198)
==11682== by 0x80FDA65​: Perl_eval_sv (perl.c​:2882)
==11682== by 0x80FE601​: Perl_require_pv (perl.c​:2989)
==11682== by 0x8121DDC​: Perl_gv_fetchmethod_pvn_flags (gv.c​:1088)
==11682== by 0x8123199​: Perl_gv_fetchmethod_sv_flags (gv.c​:1001)
==11682== Address 0x45524f47 is not stack'd, malloc'd or (recently) free'd
==11682==
==11682==
==11682== Process terminating with default action of signal 11 (SIGSEGV)
==11682== Access not within mapped region at address 0x45524F47
==11682== at 0x8325E4C​: Perl_hv_common (hv.c​:671)
==11682== by 0x83288C5​: Perl_hv_common_key_len (hv.c​:333)
==11682== by 0x813D435​: Perl_gv_override (gv.c​:3592)
==11682== by 0x80CDF4E​: Perl_ck_require (op.c​:10644)
==11682== by 0x80A4AD6​: Perl_newUNOP (op.c​:4809)
==11682== by 0x81CF858​: Perl_yyparse (perly.y​:1004)
==11682== by 0x846D51C​: S_doeval (pp_ctl.c​:3391)
==11682== by 0x84D05C5​: Perl_pp_entereval (pp_ctl.c​:4198)
==11682== by 0x80FDA65​: Perl_eval_sv (perl.c​:2882)
==11682== by 0x80FE601​: Perl_require_pv (perl.c​:2989)
==11682== by 0x8121DDC​: Perl_gv_fetchmethod_pvn_flags (gv.c​:1088)
==11682== by 0x8123199​: Perl_gv_fetchmethod_sv_flags (gv.c​:1001)
==11682== If you believe this happened as a result of a stack
==11682== overflow in your program's main thread (unlikely but
==11682== possible), you can try to increase the size of the
==11682== main thread stack using the --main-stacksize= flag.
==11682== The main thread stack size used in this run was 8388608.
==11682==
==11682== HEAP SUMMARY​:
==11682== in use at exit​: 90,158 bytes in 421 blocks
==11682== total heap usage​: 843 allocs, 422 frees, 118,299 bytes allocated
==11682==
==11682== LEAK SUMMARY​:
==11682== definitely lost​: 156 bytes in 1 blocks
==11682== indirectly lost​: 2,592 bytes in 37 blocks
==11682== possibly lost​: 0 bytes in 0 blocks
==11682== still reachable​: 87,410 bytes in 383 blocks
==11682== suppressed​: 0 bytes in 0 blocks
==11682== Rerun with --leak-check=full to see details of leaked memory
==11682==
==11682== For counts of detected and suppressed errors, rerun with​: -v
==11682== ERROR SUMMARY​: 1 errors from 1 contexts (suppressed​: 0 from 0)
Segmentation fault

**BISECT**

15e6cdd is the first bad commit
commit 15e6cdd
Author​: David Golden <dagolden@​cpan.org>
Date​: Sun Nov 28 23​:12​:12 2010 -0500

  Filehandle method calls load IO​::File on demand
 
  When a method call on a filehandle would die because the method can not
  be resolved and L<IO​::File> has not been loaded, Perl now loads IO​::File
  via C<require> and attempts method resolution again​:
 
  open my $fh, ">", $file;
  $fh->binmode("​:raw"); # loads IO​::File and succeeds
 
  This also works for globs like STDOUT, STDERR and STDIN​:
 
  STDOUT->autoflush(1);
 
  Because this on-demand load only happens if method resolution fails, the
  legacy approach of manually loading an IO​::File parent class for partial
  method support still works as expected​:
 
  use IO​::Handle;
  open my $fh, ">", $file;
  $fh->autoflush(1); # IO​::File not loaded

:100644 100644 5ddf5ccc2d313c25b50eebbb6f75cc6bdf8b2e8c d9281f462a045d2bbe376d81a8b86a974032156c M MANIFEST
:100644 100644 5fd385bd11b37a1c8c20146b1818e751376ec45e 4775bccf3701af1b081a9bf3ee1c30c68f177b9b M gv.c
:040000 040000 af27b0f4e6fb40d5844054153ea1db83456d7f2c e41af2cb54480c0010fbde174abab7036745f482 M pod
:040000 040000 1c79c8de724651339b2360962d73754e999cc5b5 e4fb3294c6b8f2a69a4ccb849898ad8d6884bd91 M t
bisect run success

**PERL -V**

dcollins@​nightshade​:~/perl$ ./perl -Ilib -V
Summary of my perl5 (revision 5 version 23 subversion 4) configuration​:
  Commit id​: e120c24
  Platform​:
  osname=linux, osvers=2.6.32-5-686, archname=i686-linux-64int-ld
  uname='linux nightshade 2.6.32-5-686 #1 smp tue may 13 16​:33​:32 utc 2014 i686 gnulinux '
  config_args='-Dusedevel -Dprefix=/usr/local/perl-afl -Dcc=ccache afl-gcc -Duselongdouble -Duse64bitint -Doptimize=-g -Uversiononly -Uman1dir -Uman3dir -des'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  use64bitint=define, use64bitall=undef, uselongdouble=define
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='ccache afl-gcc', ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
  optimize='-g',
  cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
  ccversion='', gccversion='5.2.0', gccosandvers=''
  intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678, doublekind=3
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12, longdblkind=3
  ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
  alignbytes=4, prototype=define
  Linker and Libraries​:
  ld='ccache afl-gcc', ldflags =' -fstack-protector-strong -L/usr/local/lib'
  libpth=/usr/local/lib /usr/local/lib/gcc/i686-pc-linux-gnu/5.2.0/include-fixed /usr/lib /lib/../lib /usr/lib/../lib /lib /usr/lib/i486-linux-gnu /usr/lib64
  libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
  perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
  libc=libc-2.22.so, so=so, useshrplib=false, libperl=libperl.a
  gnulibc_version='2.22'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
  cccdlflags='-fPIC', lddlflags='-shared -g -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl)​:
  Compile-time options​: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
  PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_INT
  USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
  USE_LONG_DOUBLE USE_PERLIO USE_PERL_ATOF
  Built under linux
  Compiled at Sep 25 2015 09​:13​:06
  @​INC​:
  lib
  /usr/local/perl-afl/lib/site_perl/5.23.4/i686-linux-64int-ld
  /usr/local/perl-afl/lib/site_perl/5.23.4
  /usr/local/perl-afl/lib/5.23.4/i686-linux-64int-ld
  /usr/local/perl-afl/lib/5.23.4
  /usr/local/perl-afl/lib/site_perl/5.23.3
  /usr/local/perl-afl/lib/site_perl/5.23.2
  /usr/local/perl-afl/lib/site_perl
  .

@p5pRT
Copy link
Author

p5pRT commented Apr 11, 2016

From @tonycoz

On Fri Sep 25 10​:32​:29 2015, dcollinsn@​gmail.com wrote​:

which was further manually reduced to the 8-character file​:

f f%​::=f

Debugging perls instead report​:

miniperl​: hv.c​:355​: Perl_hv_common​: Assertion `((svtype)((hv)-

sv_flags & 0xff)) == SVt_PVHV' failed.

Expected behavior is the same as the similar test 'f f$​::=f', which
crashes with "Can't locate object method "f" via package "f" (perhaps
you forgot to load "f"?)". Once upon a time that happened, however,
interestingly, that changed when xdg added code to automatically
require IO​::File when a filehandle method call would fail because the
method would not be found (see bisect). What's more, I tested​:

dcollins@​nightshade​:/usr/local/perl-afl/out$ ../bin/perl -e 'f f%​::=f'
Segmentation fault
dcollins@​nightshade​:/usr/local/perl-afl/out$ ../bin/perl -MIO​::File -e
'f f%​::=f'
Can't locate object method "f" via package "IO​::File" at -e line 1.

So it seems like this is some weird case of an error while loading the
module in this way, or loading it while this odd construct is on the
stack.

What's happening is the assignment​:

  %​::=f

is releasing the sv PL_globalstash points at, which is then re-used when an overload for require is checked for, setting it to "CORE".

Modifying hv_clear() to reinitialize PL_globalstash gets past that bug, but fails further on (trashing the symbol table is bad.)

Tony

@p5pRT
Copy link
Author

p5pRT commented Apr 11, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Sep 16, 2016

From @geeknik

Triggered in v5.25.5 (v5.25.4-130-g7aa7bbc) w/ AFL + ASAN.

./perl -e '*0=d$^$^=%0=*0=$0=$^=$0=*0=$0=$V'
Scalar found where operator expected at -e line 1, near "$^$^"
  (Missing operator before $^?)
  : hv.c​:355​: void *Perl_hv_common(HV *, SV *, const char *, STRLEN, int, int, SV *, U32)​: Assertion `((svtype)((hv)->sv_flags & 0xff)) == SVt_PVHV' failed.
Aborted

@p5pRT
Copy link
Author

p5pRT commented Oct 13, 2016

From @geeknik

Triggered in Perl v5.25.6 (v5.25.5-76-g91dca83) with AFL+ASAN.

Odd number of elements in hash assignment at test113 line 1.
Can't locate package IO​::Handle for @​IO​::File​::ISA at test113 line 1.
Can't locate package IO​::Seekable for @​IO​::File​::ISA at test113 line 1.
Can't locate package IO​::Handle for @​IO​::File​::ISA at test113 line 1.
Can't locate package IO​::Seekable for @​IO​::File​::ISA at test113 line 1.
Unrecognized escape \m passed through in regex; marked by <-- HERE in
m/;ememee-c¦¦;@​​:: e; cme;@​​:: =2A^D= \m <-- HERE ¦9​: =^D=
\PPPPPPPPPPPPPPPPPPPPPPPPPPPPPm/ at test113 line 1.
perl​: hv.c​:355​: void *Perl_hv_common(HV *, SV *, const char *, STRLEN, int,
int, SV *, U32)​: Assertion `((svtype)((hv)->sv_flags & 0xff)) == SVt_PVHV'
failed.
Aborted

The attached doesn't always trigger this assertion failure failure though,
it also returns​:

Odd number of elements in hash assignment at test113 line 1.
Can't locate package Exporter for @​IO​::File​::ISA at test113 line 1.
Can't locate package Exporter for @​IO​::File​::ISA at test113 line 1.
Unrecognized escape \m passed through in regex; marked by <-- HERE in
m/;ememee-c¦¦;@​​:: e; cme;@​​:: =2A^D= \m <-- HERE ¦9​: =^D=
\PPPPPPPPPPPPPPPPPPPPPPPPPPPPPm/ at test113 line 1.
Can't locate utf8.pm in @​INC (you may need to install the utf8 module)
(@​INC contains​: /usr/local/lib/perl5/site_perl/5.25.6/x86_64-linux
/usr/local/lib/perl5/site_perl/5.25.6
/usr/local/lib/perl5/5.25.6/x86_64-linux /usr/local/lib/perl5/5.25.6 .) at
test113 line 1.
BEGIN failed--compilation aborted.

and

Odd number of elements in hash assignment at test113 line 1.
Can't locate package IO​::Handle for @​IO​::File​::ISA at test113 line 1.
Can't locate package IO​::Seekable for @​IO​::File​::ISA at test113 line 1.
Can't locate package IO​::Handle for @​IO​::File​::ISA at test113 line 1.
Can't locate package IO​::Seekable for @​IO​::File​::ISA at test113 line 1.
Unrecognized escape \m passed through in regex; marked by <-- HERE in
m/;ememee-c¦¦;@​​:: e; cme;@​​:: =2A^D= \m <-- HERE ¦9​: =^D=
\PPPPPPPPPPPPPPPPPPPPPPPPPPPPPm/ at test113 line 1.
Can't locate utf8.pm in @​INC (you may need to install the utf8 module)
(@​INC contains​: /usr/local/lib/perl5/site_perl/5.25.6/x86_64-linux
/usr/local/lib/perl5/site_perl/5.25.6
/usr/local/lib/perl5/5.25.6/x86_64-linux /usr/local/lib/perl5/5.25.6 .) at
test113 line 1.
BEGIN failed--compilation aborted.
Can't locate package IO​::Handle for @​IO​::File​::ISA during global
destruction.
Can't locate package IO​::Seekable for @​IO​::File​::ISA during global
destruction.
Can't locate package Exporter for @​IO​::File​::ISA during global destruction.
Can't locate package IO​::Handle for @​IO​::File​::ISA during global
destruction.
Can't locate package IO​::Seekable for @​IO​::File​::ISA during global
destruction.
Can't locate package Exporter for @​IO​::File​::ISA during global destruction.

and

Odd number of elements in hash assignment at test113 line 1.
Can't locate package Exporter for @​IO​::File​::ISA at test113 line 1.
Can't locate package Exporter for @​IO​::File​::ISA at test113 line 1.
Unrecognized escape \m passed through in regex; marked by <-- HERE in
m/;ememee-c¦¦;@​​:: e; cme;@​​:: =2A^D= \m <-- HERE ¦9​: =^D=
\PPPPPPPPPPPPPPPPPPPPPPPPPPPPPm/ at test113 line 1.
Can't locate utf8.pm in @​INC (you may need to install the utf8 module)
(@​INC contains​: /usr/local/lib/perl5/site_perl/5.25.6/x86_64-linux
/usr/local/lib/perl5/site_perl/5.25.6
/usr/local/lib/perl5/5.25.6/x86_64-linux /usr/local/lib/perl5/5.25.6 .) at
test113 line 1.
BEGIN failed--compilation aborted.

@p5pRT
Copy link
Author

p5pRT commented Oct 13, 2016

From @geeknik

test113.gz

@p5pRT
Copy link
Author

p5pRT commented Nov 14, 2016

From @hvds

This reduces to​:

% PERL_HASH_SEED=1 ./miniperl -e '%​::=(); /$^D \PX/'
miniperl​: hv.c​:355​: Perl_hv_common​: Assertion `((svtype)((hv)->sv_flags & 0xff)) == SVt_PVHV' failed.
Aborted (core dumped)
%

(The HASH_SEED determines the order the %​:: keys are freed, and thus whether it fails; you may need a different value to reproduce.)

This appears to happen because PL_globalstash gets freed when all its references disappear during the '%​:: = ()', and gets recreated only as a PVAV.

Giving it an artificial SvREFCNT_inc in S_init_main_stash() stops the coredump, but I'm not sure there's any sane situation it'd be needed, nor that it'd be the right answer if there is.

Hugo

@p5pRT
Copy link
Author

p5pRT commented Nov 14, 2016

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

@p5pRT
Copy link
Author

p5pRT commented Jan 21, 2017

From @dur-randir

./perl -e '*0=d$^$^=%0=*0=$0=$^=$0=*0=$0=$V'

This is a duplicate of https://rt.perl.org/Public/Bug/Display.html?id=126188

@p5pRT
Copy link
Author

p5pRT commented Jan 21, 2017

From [Unknown Contact. See original ticket]

./perl -e '*0=d$^$^=%0=*0=$0=$^=$0=*0=$0=$V'

This is a duplicate of https://rt.perl.org/Public/Bug/Display.html?id=126188

@p5pRT
Copy link
Author

p5pRT commented Jan 21, 2017

From @dur-randir

% PERL_HASH_SEED=1 ./miniperl -e '%​::=(); /$^D \PX/'

This is a duplicate of https://rt.perl.org/Public/Bug/Display.html?id=126188

@p5pRT
Copy link
Author

p5pRT commented Jan 21, 2017

From [Unknown Contact. See original ticket]

% PERL_HASH_SEED=1 ./miniperl -e '%​::=(); /$^D \PX/'

This is a duplicate of https://rt.perl.org/Public/Bug/Display.html?id=126188

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

2 participants