perl.perl5.porters https://www.nntp.perl.org/group/perl.perl5.porters/ ... Copyright 1998-2019 perl.org Fri, 20 Sep 2019 13:47:34 +0000 ask@perl.org [perl #134441] Dumpvalue's dumpValue and dumpValues do not behavethe same way by James E Keenan via RT On Thu, 19 Sep 2019 13:06:49 GMT, henrik.pauli@comnica.com wrote:<br/>&gt; This is a bug report for perl from henrik.pauli@comnica.com,<br/>&gt; generated with the help of perlbug 1.41 running under perl 5.28.2.<br/>&gt; <br/>&gt; Contrary to what the manual claims, the singular and the plural form<br/>&gt; don&#39;t behave the same when `undef` is involved:<br/>&gt; <br/>&gt; ```perl<br/>&gt; use v5.10;<br/>&gt; use Dumpvalue;<br/>&gt; <br/>&gt; my $dv = Dumpvalue-&gt;new();<br/>&gt; my ($x, $y) = (undef, &quot;something&quot;);<br/>&gt; <br/>&gt; say &quot;x = &quot; . ($x // &quot;&lt;UNDEF&gt;&quot;);<br/>&gt; say &quot;y = &quot; . ($y // &quot;&lt;UNDEF&gt;&quot;);<br/>&gt; say &quot;dumpValues(x, y):&quot;;<br/>&gt; $dv-&gt;dumpValues($x, $y);<br/>&gt; say &quot;dumpValue([x, y]):&quot;;<br/>&gt; $dv-&gt;dumpValue([$x, $y]);<br/>&gt; ```<br/>&gt; <br/>&gt; Output:<br/>&gt; ```<br/>&gt; x = &lt;UNDEF&gt;<br/>&gt; y = something<br/>&gt; dumpValues(x, y):<br/>&gt; undef<br/>&gt; dumpValue([x, y]):<br/>&gt; 0&Acirc;&nbsp; undef<br/>&gt; 1&Acirc;&nbsp; &#39;something&#39;<br/>&gt; ```<br/>&gt; <br/>&gt; Expected output:<br/>&gt; <br/>&gt; Both should say<br/>&gt; ```<br/>&gt; 0&Acirc;&nbsp; undef<br/>&gt; 1&Acirc;&nbsp; &#39;something&#39;<br/>&gt; ```<br/><br/>I believe that the patch attached confirms the bug. It appears that the methods cannot properly handle undefined values in the array passed to the dumpValues() method or to the arrayref passed to the dumpValue() method. These cases were not previously tested.<br/><br/>Thank you very much.<br/><br/>-- <br/>James E Keenan (jkeenan@cpan.org)<br/><br/>---<br/>via perlbug: queue: perl5 status: new<br/>https://rt.perl.org/Ticket/Display.html?id=134441<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256245.html Fri, 20 Sep 2019 03:09:47 +0000 [perl #134439] Segfault (memory access violation) inPerl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0 by steven.bush@3ds.com via RT Apologies if my message is duplicated. I replied in e-mail to the comments earlier today, but the response did not appear on the site (maybe I&#39;m not patient enough).<br/><br/>I agree that khw&#39;s patch is better than my initial patch: it has the same behavior but keeps things centralized.<br/><br/>I put together the following C++ test harness that reliably replicates the crashing behavior on my laptop. It requires File::Spec. The crash occurs while parsing the regex from PathTools Cwd.pm: &quot;^[ET1]&quot;<br/><br/>#include &lt;EXTERN.h&gt;<br/>#include &lt;perl.h&gt;<br/><br/>int main(int argc, char* argv[])<br/>{<br/> static const char* TestPerlScript = &quot;use File::Spec;\n&quot;;<br/> char *args[] =<br/> {<br/> &quot;&quot;,<br/> &quot;-e&quot;,<br/> &quot;0&quot;,<br/> 0<br/> };<br/> int args_c = sizeof(args) / sizeof(*args);<br/> char** args_v = args;<br/><br/> PERL_SYS_INIT3(&amp;args_c, &amp;args_v, NULL);<br/> PerlInterpreter* my_perl = perl_alloc();<br/><br/> perl_construct(my_perl);<br/> perl_parse(my_perl, NULL, 3, args, NULL);<br/> perl_run(my_perl);<br/><br/> eval_pv(TestPerlScript, TRUE);<br/><br/> perl_destruct(my_perl);<br/> perl_free(my_perl);<br/> my_perl = NULL;<br/> <br/> printf(&quot;PASS 1 Success\n----\n&quot;);<br/><br/> my_perl = perl_alloc();<br/> perl_construct(my_perl);<br/> perl_parse(my_perl, NULL, 3, args, NULL);<br/> perl_run(my_perl);<br/><br/>/* CRASHES HERE */<br/> eval_pv(TestPerlScript, TRUE);<br/><br/> perl_destruct(my_perl);<br/> perl_free(my_perl);<br/> printf(&quot;PASS 2 Success\n----\n&quot;);<br/><br/> PERL_SYS_TERM();<br/> return 0;<br/>}<br/><br/><br/><br/>On Wed, 18 Sep 2019 08:23:38 -0700, khw wrote:<br/>&gt; On Tue, 17 Sep 2019 23:03:05 -0700, tonyc wrote:<br/>&gt; &gt; On Tue, 17 Sep 2019 14:50:07 -0700, steven.bush@3ds.com wrote:<br/>&gt; &gt; &gt; The crash is occurring with regex expressions containing character<br/>&gt; &gt; &gt; sets &quot;[abc]&quot;<br/>&gt; &gt;<br/>&gt; &gt; Do you have a more complete example of this?<br/>&gt; &gt;<br/>&gt; &gt; I&#39;ve tried some simple code that exercises regexps with [abc], but<br/>&gt; &gt; haven&#39;t managed to make it fault, even with valgrind running the<br/>&gt; &gt; executable.<br/>&gt; &gt;<br/>&gt; &gt; My test code is running the code twice and PL_InBitmap is the same<br/>&gt; &gt; after each run, so I can see there is a problem, but I&#39;m not seeing<br/>&gt; &gt; the crash, which I&#39;d like for a regression test.<br/>&gt; &gt;<br/>&gt; &gt; Thanks,<br/>&gt; &gt; Tony<br/>&gt; <br/>&gt; It would be great to have the data for a regression test, but Steven<br/>&gt; has done an admirable job of diagnosing the problem. I prefer the<br/>&gt; attached patch, as it keeps the initialization of all the similar<br/>&gt; variables in the same place<br/><br/><br/><br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=134439<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256244.html Fri, 20 Sep 2019 01:20:59 +0000 RE: [perl #134439] Segfault (memory access violation) inPerl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0 by BUSH Steve Hi Tony, <br/> <br/>I&#39;ve had the same problem of trying to create a simple test harness for this. The perl regcomp code crashes consistently within our full sized application, but the script we are loading is moderately complex and includes a number of other modules. In our case, from stepping through the debugger on Windows, the regex that is causing problems is coming from Cwd.pm: <br/> $unix_rpt = $env_unix_rpt =~ /^[ET1]/i; <br/> <br/>But when I try that in a test harness, it does not crash <br/> <br/>The code that we have that pulls in the code is this: <br/>use strict; <br/>use File::Spec; &lt;&lt;&lt;--- this is the one that brings in the regex from Cwd.pm &quot;^[ET1]&quot; <br/>use File::Path; <br/> <br/> <br/>I put together the following test C++ based test harness that seems to do the trick. This was wrapped into a simple main() with #include &lt;EXTERN.h&gt; and &lt;perl.h&gt; at the top <br/> <br/> static const char* TestPerlScript = &quot;use File::Spec;\n&quot;; <br/>//Works okay: static const char* TestPerlScript = &quot;use strict;\n&quot;; <br/>//Works okay: static const char* TestPerlScript = &quot;$a = 1;\n&quot;; <br/> char *args[] = <br/> { <br/> &quot;&quot;, <br/> &quot;-e&quot;, <br/> &quot;0&quot;, <br/> 0 <br/> }; <br/> int argc = sizeof(args) / sizeof(*args); <br/> char** argv = args; <br/> <br/> PERL_SYS_INIT3(&amp;argc, &amp;argv, NULL); <br/> PerlInterpreter* my_perl = perl_alloc(); <br/> <br/> perl_construct(my_perl); <br/> perl_parse(my_perl, NULL, 3, args, NULL); <br/> perl_run(my_perl); <br/> <br/> eval_pv(TestPerlScript, TRUE); <br/> <br/> perl_destruct(my_perl); <br/> perl_free(my_perl); <br/> my_perl = NULL; <br/> <br/> printf(&quot;PASS 1 Success\n----\n&quot;); <br/> <br/> my_perl = perl_alloc(); <br/> perl_construct(my_perl); <br/> perl_parse(my_perl, NULL, 3, args, NULL); <br/> perl_run(my_perl); <br/> <br/> eval_pv(TestPerlScript, TRUE); //&lt;-------- SEGFAULTS HERE <br/> <br/> perl_destruct(my_perl); <br/> perl_free(my_perl); <br/> printf(&quot;PASS 2 Success\n----\n&quot;); <br/> <br/> PERL_SYS_TERM(); <br/> <br/> <br/> <br/>-----Original Message----- <br/>From: Tony Cook via RT [mailto:perlbug-followup@perl.org] <br/>Sent: Tuesday, September 17, 2019 11:03 PM <br/>To: BUSH Steve <br/>Subject: [perl #134439] Segfault (memory access violation) in Perl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0 <br/> <br/>On Tue, 17 Sep 2019 14:50:07 -0700, steven.bush@3ds.com wrote: <br/>&gt; The crash is occurring with regex expressions containing character <br/>&gt; sets &quot;[abc]&quot; <br/> <br/>Do you have a more complete example of this? <br/> <br/>I&#39;ve tried some simple code that exercises regexps with [abc], but haven&#39;t managed to make it fault, even with valgrind running the executable. <br/> <br/>My test code is running the code twice and PL_InBitmap is the same after each run, so I can see there is a problem, but I&#39;m not seeing the crash, which I&#39;d like for a regression test. <br/> <br/>Thanks, <br/>Tony <br/>This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged. <br/> <br/>If you are not one of the named recipients or have received this email in error, <br/> <br/>(i) you should not read, disclose, or copy it, <br/> <br/>(ii) please notify sender of your receipt by reply email and delete this email and all attachments, <br/> <br/>(iii) Dassault Syst&Atilde;&uml;mes does not accept or assume any liability or responsibility for any use of or reliance on this email. <br/> <br/> <br/>Please be informed that your personal data are processed according to our data privacy policy as described on our website. Should you have any questions related to personal data protection, please contact 3DS Data Protection Officer at 3DS.compliance-privacy@3ds.com&lt;mailto:3DS.compliance-privacy@3ds.com&gt; <br/> <br/> <br/>For other languages, go to https://www.3ds.com/terms/email-disclaimer <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256243.html Fri, 20 Sep 2019 01:20:59 +0000 [perl #134441] Dumpvalue's dumpValue and dumpValues do not behavethe same way by Henrik Pauli # New Ticket Created by Henrik Pauli <br/># Please include the string: [perl #134441]<br/># in the subject line of all future correspondence about this issue. <br/># &lt;URL: https://rt.perl.org/Ticket/Display.html?id=134441 &gt;<br/><br/><br/>This is a bug report for perl from henrik.pauli@comnica.com,<br/>generated with the help of perlbug 1.41 running under perl 5.28.2.<br/><br/>Contrary to what the manual claims, the singular and the plural form <br/>don&#39;t behave the same when `undef` is involved:<br/><br/>```perl<br/>use v5.10;<br/>use Dumpvalue;<br/><br/>my $dv = Dumpvalue-&gt;new();<br/>my ($x, $y) = (undef, &quot;something&quot;);<br/><br/>say &quot;x = &quot; . ($x // &quot;&lt;UNDEF&gt;&quot;);<br/>say &quot;y = &quot; . ($y // &quot;&lt;UNDEF&gt;&quot;);<br/>say &quot;dumpValues(x, y):&quot;;<br/>$dv-&gt;dumpValues($x, $y);<br/>say &quot;dumpValue([x, y]):&quot;;<br/>$dv-&gt;dumpValue([$x, $y]);<br/>```<br/><br/>Output:<br/>```<br/>x = &lt;UNDEF&gt;<br/>y = something<br/>dumpValues(x, y):<br/>undef<br/>dumpValue([x, y]):<br/>0&Acirc;&nbsp; undef<br/>1&Acirc;&nbsp; &#39;something&#39;<br/>```<br/><br/>Expected output:<br/><br/>Both should say<br/>```<br/>0&Acirc;&nbsp; undef<br/>1&Acirc;&nbsp; &#39;something&#39;<br/>```<br/>---<br/>Flags:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; category=library<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; severity=low<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; module=Dumpvalue<br/>---<br/>This perlbug was built using Perl 5.28.2 - Thu Aug 22 12:32:10 UTC 2019<br/>It is being executed now by&Acirc;&nbsp; Perl 5.28.2 - Thu Aug 22 12:27:54 UTC 2019.<br/><br/>Site configuration information for perl 5.28.2:<br/><br/>Configured by Red Hat, Inc. at Thu Aug 22 12:27:54 UTC 2019.<br/><br/>Summary of my perl5 (revision 5 version 28 subversion 2) configuration:<br/><br/> &Acirc;&nbsp; Platform:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; osname=linux<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; osvers=5.0.6-200.fc29.x86_64<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; archname=x86_64-linux-thread-multi<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; uname=&#39;linux buildvm-10.phx2.fedoraproject.org <br/>5.0.6-200.fc29.x86_64 #1 smp wed apr 3 15:09:51 utc 2019 x86_64 x86_64 <br/>x86_64 gnulinux &#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; config_args=&#39;-des -Doptimize=none -Dccflags=-O2 -g -pipe -Wall <br/>-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 <br/>-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong <br/>-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 <br/>-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic <br/>-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection <br/>-Dldflags=-Wl,-z,relro&Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; -Wl,-z,now <br/>-specs=/usr/lib/rpm/redhat/redhat-hardened-ld <br/>-Dccdlflags=-Wl,--enable-new-dtags -Wl,-z,relro&Acirc;&nbsp;&Acirc;&nbsp; -Wl,-z,now <br/>-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Dlddlflags=-shared <br/>-Wl,-z,relro&Acirc;&nbsp;&Acirc;&nbsp; -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld <br/>-Dshrpdir=/usr/lib64 -DDEBUGGING=-g -Dversion=5.28.2 <br/>-Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red <br/>Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local <br/>-Dsitelib=/usr/local/share/perl5<br/>-Dsitearch=/usr/local/lib64/perl5 -Dprivlib=/usr/share/perl5 <br/>-Dvendorlib=/usr/share/perl5/vendor_perl -Darchlib=/usr/lib64/perl5 <br/>-Dvendorarch=/usr/lib64/perl5/vendor_perl <br/>-Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 <br/>/usr/lib64 -Duseshrplib -Dusethreads -Duseithreads <br/>-Dusedtrace=/usr/bin/dtrace -Duselargefiles -Dd_semctl_semun -Di_db <br/>-Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio <br/>-Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly <br/>-Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto <br/>-Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto <br/>-Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/usr/bin <br/>-Dusesitecustomize -Duse64bitint&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; hint=recommended<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; useposix=true<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; d_sigaction=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; useithreads=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; usemultiplicity=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; use64bitint=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; use64bitall=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; uselongdouble=undef<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; usemymalloc=n<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; default_inc_excludes_dot=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; bincompat5005=undef<br/> &Acirc;&nbsp; Compiler:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; cc=&#39;gcc&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ccflags =&#39;-D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall <br/>-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 <br/>-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong <br/>-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 <br/>-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic <br/>-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection <br/>-fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE <br/>-D_FILE_OFFSET_BITS=64&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; optimize=&#39;&Acirc;&nbsp; -g&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; cppflags=&#39;-D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall <br/>-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 <br/>-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong <br/>-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 <br/>-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic <br/>-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection <br/>-fwrapv -fno-strict-aliasing -I/usr/local/include&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ccversion=&#39;&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; gccversion=&#39;8.3.1 20190223 (Red Hat 8.3.1-2)&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; gccosandvers=&#39;&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; intsize=4<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; longsize=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ptrsize=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; doublesize=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; byteorder=12345678<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; doublekind=3<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; d_longlong=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; longlongsize=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; d_longdbl=define<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; longdblsize=16<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; longdblkind=3<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ivtype=&#39;long&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ivsize=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; nvtype=&#39;double&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; nvsize=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Off_t=&#39;off_t&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; lseeksize=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; alignbytes=8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; prototype=define<br/> &Acirc;&nbsp; Linker and Libraries:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ld=&#39;gcc&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ldflags =&#39;-Wl,-z,relro -Wl,-z,now <br/>-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector-strong <br/>-L/usr/local/lib&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; libpth=/usr/local/lib64 /lib64 /usr/lib64 /usr/local/lib /usr/lib <br/>/lib/../lib64 /usr/lib/../lib64 /lib<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; libs=-lpthread -lresolv -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc <br/>-lgdbm_compat<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; perllibs=-lpthread -lresolv -ldl -lm -lcrypt -lutil -lc<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; libc=libc-2.28.so<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; so=so<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; useshrplib=true<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; libperl=libperl.so<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; gnulibc_version=&#39;2.28&#39;<br/> &Acirc;&nbsp; Dynamic Linking:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; dlsrc=dl_dlopen.xs<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; dlext=so<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; d_dlsymun=undef<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; ccdlflags=&#39;-Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now <br/>-specs=/usr/lib/rpm/redhat/redhat-hardened-ld&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; cccdlflags=&#39;-fPIC&#39;<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; lddlflags=&#39;-lpthread -shared -Wl,-z,relro -Wl,-z,now <br/>-specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/usr/local/lib <br/>-fstack-protector-strong&#39;<br/><br/>Locally applied patches:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch1: Removes date check, Fedora/RHEL specific<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch2: support for libdir64<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch3: use libresolv instead of libbind<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch4: USE_MM_LD_RUN_PATH<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch5: Provide MM::maybe_command independently (bug #1129443)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch6: Dont run one io test due to random builder failures<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch8: Define SONAME for libperl.so<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch9: Install libperl.so to -Dshrpdir value<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch10: Document Math::BigInt::CalcEmu requires <br/>Math::BigInt (CPAN RT#85015)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch11: Make *DBM_File desctructors thread-safe (RT#61912)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch12: Replace EU::MakeMaker dependency with EU::MM::Utils <br/>in IPC::Cmd (bug #1129443)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch13: Fix executing arybase::_tie_it() in Safe <br/>compartement (RT#131588)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch14: Link XS modules to pthread library to fix linking <br/>with -z defs<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch17: Fix printing a warning about a wide character when <br/>matching a regular expression while ISO-8859-1 locale is in effect<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch18: Fix invoking a check for wide characters while <br/>ISO-8859-1 locale is in effect<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch20: Fix build conditions in locale.c<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch21: Fix a file descriptor leak in in-place edits <br/>(RT#133314)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch23: Fix a buffer overrun in deprecated S_is_utf8_common()<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch24: Fix a time race in Time-HiRes/t/itimer.t test<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch26: Fix Time::Piece to handle objects in overloaded <br/>methods correctly<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch27: Fix an assignment to a lexical variable in <br/>multiconcatenation expressions (RT#133441)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch28: Fix a spurious warning about uninitialized value in <br/>warn (RT#132683)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch30: Pass the correct CFLAGS to dtrace<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch33: Fix PathTools tests to cope with ESTALE error <br/>(RT#133534)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch34: Fix an undefined behaviour in S_hv_delete_common()<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch38: Fix compiling regular expressions that contain both <br/>compile- and run-time compiled code blocks (RT#133687)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch39: Adjust tests to gdbm-1.15 (RT#133295)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch44: Fix reporting a line number for non-terminated <br/>prototypes (RT#133524)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch45: Fix first eof() return value (RT#133721)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch49: Prevent long jumps from clobbering local variables <br/>(RT#133575)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch50: Fix a mismatch with a case-insesitive regular <br/>expression on a text with ligatures (RT#133756)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch53: Fix setting magic when changing $^R (RT#133782)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch54: Fix a race when loading XS modules<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch56: Fix a leak when compiling a typed hash dereference<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch58: Fix a buffer overread when handling a scope error <br/>in qr/\(?{/ (RT#133879)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch59: Fix a buffer overread when parsing a regular <br/>expression with an unknown character name (RT#133880)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch60: Fix mbstate_t initialization in POSIX::mblen <br/>(RT#133928)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch61: Fix a memory leak when cloning a regular expression<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch62: Fix a memory leak when spawning threads in a BEGIN <br/>phase<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch63: Fix a memory leak when assigning a regular <br/>expression to a non-copy-on-write string<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch64: Fix a memory leak when assignig to a localized <br/>${^WARNING_BITS}<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch65: Fix a memory leak when parsing misindented <br/>here-documents<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch66: Fix a memory leak in package name lookup (RT#133977)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch68: Fix a memory leak when deletion in a tied hash dies<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch69: Fix a crash when matching case insensitively <br/>(RT#133892)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch70: Fix a memory leak when warning about malformed <br/>UTF-8 string<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch71: Do not panic when evaluating non-ASCII bare words <br/>(RT#134061)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch72: Do not panic when evaluating non-ASCII bare words <br/>(RT#134061)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch73: Fix a crash in SIGALARM handler when waiting on a <br/>child process to be closed (RT#122112)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch74: Fix a crash in SIGALARM handler when waiting on a <br/>child process to be closed (RT#122112)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch75: Fix a crash in SIGALARM handler when waiting on a <br/>child process to be closed (RT#122112)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch76: Fix a crash with a negative precision in sprintf <br/>function (RT#134008)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch77: Fix a crash with a negative precision in sprintf <br/>function (RT#134008)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch78: Prevent from wrapping a width in a numeric format <br/>string (RT#133913)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch79: Fix subroutine protypes to track reference aliases <br/>(RT#134072)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch80: Improve retrieving a scalar value of a variable <br/>modified in a signal handler (RT#134035)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch81: Fix changing packet destination sent from a UDP <br/>IO::Socket object (RT#133936)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch82: Fix changing packet destination sent from a UDP <br/>IO::Socket object (RT#133936)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch83: Fix changing packet destination sent from a UDP <br/>IO::Socket object (RT#133936)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch84: Fix a stack underflow in readline() if passed an <br/>empty array as an argument (#RT133989)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch85: Fix %{^CAPTURE_ALL} to be an alias for %- variable <br/>(RT#131867)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch86: Fix %{^CAPTURE} value when used after @{^CAPTURE} <br/>(RT#134193)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch87: Fix %{^CAPTURE} value when used after @{^CAPTURE} <br/>(RT#134193)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch88: Fix a test for a crash in SIGALARM handler when <br/>waiting on a child process to be closed (RT#122112)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch89: Fix a crash on an uninitialized warning when <br/>processing a multideref node (RT#134275)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch90: Preserve append mode when opening anonymous files <br/>(RT#134221)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch91: Preserve append mode when opening anonymous files <br/>(RT#134221)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch92: Preserve append mode when opening anonymous files <br/>(RT#134221)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch93: Fix propagating non-string variables in an <br/>exception value (RT#134291)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch94: Include trailing zero in scalars holding trie data <br/>(RT#134207)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch95: Fix a use after free in /(?{...})/ (RT#134208)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch96: Fix a use after free in debugging output of a collation<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch97: Fix a NULL pointer dereference in PerlIOVia_pushed()<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch98: Fix a crash when setting $@ on unwinding a call <br/>stack (RT#134266)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch99: Fix a documentation about a future API change<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on <br/>Linux<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux<br/><br/>---<br/>@INC for perl 5.28.2:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; /usr/local/lib64/perl5<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; /usr/local/share/perl5<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; /usr/lib64/perl5/vendor_perl<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; /usr/share/perl5/vendor_perl<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; /usr/lib64/perl5<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; /usr/share/perl5<br/><br/>---<br/>Environment for perl 5.28.2:<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; HOME=/home/henrik<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; LANG=en_GB.utf8<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; LANGUAGE=<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; LD_LIBRARY_PATH (unset)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; LOGDIR (unset)<br/>PATH=/usr/lib64/qt-3.3/bin:/home/henrik/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; PERL_BADLANG (unset)<br/> &Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp; SHELL=/bin/zsh<br/><br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256242.html Fri, 20 Sep 2019 01:20:56 +0000 [perl #134439] Segfault (memory access violation) inPerl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0 by steven.bush@3ds.com # New Ticket Created by steven.bush@3ds.com <br/># Please include the string: [perl #134439]<br/># in the subject line of all future correspondence about this issue. <br/># &lt;URL: https://rt.perl.org/Ticket/Display.html?id=134439 &gt;<br/><br/><br/>Content-Type: multipart/mixed; boundary=&quot;------------1.41.perlbug&quot;<br/>Reply-To: steven.bush@3ds.com<br/>Subject: Segfault (memory access violation) in Perl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0<br/>Message-Id: &lt;5.30.0_14012_1568754224@mailhost.emea.3ds.com&gt;<br/>MIME-Version: 1.0<br/>To: perlbug@perl.org<br/>From: steven.bush@3ds.com<br/><br/><br/>This is a multi-part message in MIME format.<br/>--------------1.41.perlbug<br/>Content-Type: text/plain; format=fixed<br/>Content-Transfer-Encoding: 8bit<br/><br/>This is a bug report for perl from steven.bush@3ds.com,<br/>generated with the help of perlbug 1.41 running under perl 5.30.0.<br/><br/>Summary: Segfault (memory access violation) in Perl__invlist_intersection_maybe_complement_2nd during eval() after Perl parser embedded in C++ program is destructed pe_destruct() after upgrading from perl-5.26.3 to perl-5.30.0. Also seen in perl-5.28.2<br/><br/>Description:<br/>Our C++ based application embeds a perl parser as described here: https://perldoc.perl.org/perlembed.html<br/>We build with -Dmultiplicity<br/>1. We call perl_alloc(), perl_construct(), evaluate a particular script, then perl_destruct(), perl_free()<br/>2. Later, we again perl_alloc(), perl_construct(), evaluate, perl_destruct(), perl_free()<br/><br/>With Perl-5.26.3 and earlier, this works successfully.<br/>However, with Perl-5.30.0 (and later tested and also seen with Perl-5.28.2):<br/>During step 1, a simple script parses and executes successfully.<br/>During step 2, an identical script crashes with a segfault on linux (memory access violation on Windows)<br/>The stack trace from gdb is:<br/><br/>#0 0x000000336d689a54 in memcpy () from /lib64/libc.so.6<br/>#1 0x00007fe26c858512 in Perl__invlist_intersection_maybe_complement_2nd ()<br/> from /home/scitegicuser/dev/plp/platform/pc_i/PI/scitegic_root/apps/scitegic/core/packages_linux64/perl/perl-5.30.0/lib/5.30.0/x86_64-linux-thread-multi/CORE/libperl.so<br/>#2 0x00007fe26c858767 in S_populate_ANYOF_from_invlist () from /home/scitegicuser/dev/plp/platform/pc_i/PI/scitegic_root/apps/scitegic/core/packages_linux64/perl/perl-5.30.0/lib/5.30.0/x86_64-linux-thread-multi/CORE/libperl.so<br/>#3 0x00007fe26c874236 in S_regclass () from /home/scitegicuser/dev/plp/platform/pc_i/PI/scitegic_root/apps/scitegic/core/packages_linux64/perl/perl-5.30.0/lib/5.30.0/x86_64-linux-thread-multi/CORE/libperl.so<br/>#4 0x00007fe26c8619ee in S_regpiece () from /home/scitegicuser/dev/plp/platform/pc_i/PI/scitegic_root/apps/scitegic/core/packages_linux64/perl/perl-5.30.0/lib/5.30.0/x86_64-linux-thread-multi/CORE/libperl.so<br/>#5 0x00007fe26c866126 in S_regbranch () from /home/scitegicuser/dev/plp/platform/pc_i/PI/scitegic_root/apps/scitegic/core/packages_linux64/perl/perl-5.30.0/lib/5.30.0/x86_64-linux-thread-multi/CORE/libperl.so<br/>#6 0x00007fe26c8667f4 in S_reg () from /home/scitegicuser/dev/plp/platform/pc_i/PI/scitegic_root/apps/scitegic/core/packages_linux64/perl/perl-5.30.0/lib/5.30.0/x86_64-linux-thread-multi/CORE/libperl.so<br/>&lt;snip&gt;<br/>#40 0x00007fe26c812e88 in Perl_eval_pv () from /home/scitegicuser/dev/plp/platform/pc_i/PI/scitegic_root/apps/scitegic/core/packages_linux64/perl/perl-5.30.0/lib/5.30.0/x86_64-linux-thread-multi/CORE/libperl.so<br/><br/>I compiled perl-5.30.0 with debugging enabled and tracked the problem down as follows:<br/><br/>The crash is occurring with regex expressions containing character sets &quot;[abc]&quot;<br/><br/>During second Perl evaluation, the debugger broke on an assert inside S__invlist_len which is called from Perl__invlist_intersection_maybe_complement_2nd.<br/><br/> if ((len_a == 0) || ((len_b = _invlist_len(b)) == 0)) {<br/><br/>In this case, &quot;b&quot; is an SV struct which is invalid:<br/> b 0x0000000001d13d98<br/> sv_any 0x0000000000000000 void *<br/> sv_refcnt 0 unsigned long<br/> sv_flags 0 unsigned long<br/><br/>Looking further up the stack to S_populate_ANYOF_from_invlist(), b has been passed in PL_InBitmap which is a global variable defined in embedvar.h<br/><br/>PL_InBitmap is initialized within Perl_re_op_compile() which has changed within regcomp.c from perl-5.26.1 to perl-5.30.0 as follows:<br/>5.26.1:<br/> if (! PL_AboveLatin1) {<br/> #ifdef DEBUGGING<br/> char * dump_len_string;<br/> #endif<br/><br/> PL_AboveLatin1 = _new_invlist_C_array(AboveLatin1_invlist);<br/> PL_Latin1 = _new_invlist_C_array(Latin1_invlist);<br/> PL_UpperLatin1 = _new_invlist_C_array(UpperLatin1_invlist);<br/> PL_utf8_foldable = _new_invlist_C_array(_Perl_Any_Folds_invlist);<br/> PL_HasMultiCharFold =<br/> _new_invlist_C_array(_Perl_Folds_To_Multi_Char_invlist);<br/><br/> /* This is calculated here, because the Perl program that generates the<br/> * static global ones doesn&#39;t currently have access to<br/> * NUM_ANYOF_CODE_POINTS */<br/> PL_InBitmap = _new_invlist(2);<br/> PL_InBitmap = _add_range_to_invlist(PL_InBitmap, 0,<br/> NUM_ANYOF_CODE_POINTS - 1);<br/><br/>5.30.0/5.28.2:<br/> if (! PL_InBitmap) {<br/> #ifdef DEBUGGING<br/> char * dump_len_string;<br/> #endif<br/><br/> /* This is calculated here, because the Perl program that generates the<br/> * static global ones doesn&#39;t currently have access to<br/> * NUM_ANYOF_CODE_POINTS */<br/> PL_InBitmap = _new_invlist(2);<br/> PL_InBitmap = _add_range_to_invlist(PL_InBitmap, 0,<br/> NUM_ANYOF_CODE_POINTS - 1);<br/><br/><br/>In 5.30.0, PL_AboveLatin1 is initialized in a function at the bottom of regcomp.c:<br/> void<br/> Perl_init_uniprops(pTHX)<br/> {<br/> //.........<br/> PL_AboveLatin1 = _new_invlist_C_array(AboveLatin1_invlist);<br/><br/><br/>On the first call to Perl_re_op_compile() during the first script evaluation, PL_InBitmap = NULL and the initializer is called and PL_InBitmap&#39;s contents are valid.<br/><br/>However, after calling perl_destruct(), PL_InBitmap is no longer NULL, but the contents of PL_InBitmap have been wiped out.<br/><br/>Stepping through perl_destruct() in perl.c after the first script eval, PL_InBitmap becomes corrupt when this code executes:<br/> /* the 2 is for PL_fdpid and PL_strtab */<br/> while (sv_clean_all() &gt; 2) /// &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;------ wipes out contents of PL_inBitmap<br/> ;<br/><br/>This actually wipes out the contents of all of the PL_ globals (such as PL_AboveLatin1, PL_Latin1, PL_UpperLatin1), however those globals are reinitialized regardless of current status during perl_construct() when the function calls init_uniprops()<br/><br/><br/>I modified the code in perl_destruct() as follows:<br/> /* the 2 is for PL_fdpid and PL_strtab */<br/> while (sv_clean_all() &gt; 2) // &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;------ wipes out contents of PL_inBitmap<br/> ;<br/> PL_InBitmap = NULL; // &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;------ Null pointer to force reinitialization during Perl_re_op_compile()<br/><br/>After recompiling, all of our product tests passed successfully.<br/>---<br/>Flags:<br/> category=core<br/> severity=critical<br/>---<br/>Site configuration information for perl 5.30.0:<br/><br/>Configured by scitegicuser at Thu Jun 6 13:23:20 2019.<br/><br/>Summary of my perl5 (revision 5 version 30 subversion 0) configuration:<br/><br/> Platform:<br/> osname=MSWin32<br/> osvers=6.1.7601<br/> archname=MSWin32-x64-multi-thread<br/> uname=&#39;&#39;<br/> config_args=&#39;undef&#39;<br/> hint=recommended<br/> useposix=true<br/> d_sigaction=undef<br/> useithreads=define<br/> usemultiplicity=define<br/> use64bitint=define<br/> use64bitall=undef<br/> uselongdouble=undef<br/> usemymalloc=n<br/> default_inc_excludes_dot=define<br/> bincompat5005=undef<br/> Compiler:<br/> cc=&#39;cl&#39;<br/> ccflags =&#39;-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS&#39;<br/> optimize=&#39;-O1 -MD -Zi -DNDEBUG -GL -fp:precise&#39;<br/> cppflags=&#39;-DWIN32&#39;<br/> ccversion=&#39;19.00.24240&#39;<br/> gccversion=&#39;&#39;<br/> gccosandvers=&#39;&#39;<br/> intsize=4<br/> longsize=4<br/> ptrsize=8<br/> doublesize=8<br/> byteorder=12345678<br/> doublekind=3<br/> d_longlong=undef<br/> longlongsize=8<br/> d_longdbl=define<br/> longdblsize=8<br/> longdblkind=0<br/> ivtype=&#39;__int64&#39;<br/> ivsize=8<br/> nvtype=&#39;double&#39;<br/> nvsize=8<br/> Off_t=&#39;__int64&#39;<br/> lseeksize=8<br/> alignbytes=8<br/> prototype=define<br/> Linker and Libraries:<br/> ld=&#39;link&#39;<br/> ldflags =&#39;-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:&quot;C:\dev\plp\platform\pc_i\PI\scitegic root\apps\scitegic\core\packages_win64\perl\perl-5.30.0\lib\CORE&quot; -machine:AMD64 -subsystem:console,&quot;5.02&quot;&#39;<br/> libpth=&quot;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64&quot;<br/> libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib<br/> perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib<br/> libc=ucrt.lib<br/> so=dll<br/> useshrplib=true<br/> libperl=perl530.lib<br/> gnulibc_version=&#39;&#39;<br/> Dynamic Linking:<br/> dlsrc=dl_win32.xs<br/> dlext=dll<br/> d_dlsymun=undef<br/> ccdlflags=&#39; &#39;<br/> cccdlflags=&#39; &#39;<br/> lddlflags=&#39;-dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:&quot;C:\dev\plp\platform\pc_i\PI\scitegic root\apps\scitegic\core\packages_win64\perl\perl-5.30.0\lib\CORE&quot; -machine:AMD64 -subsystem:console,&quot;5.02&quot;&#39;<br/><br/><br/>---<br/>@INC for perl 5.30.0:<br/> c:/dev/plp/platform/pc_i/PI/scitegic root/apps/scitegic/core/packages_win64/perl/perl-5.30.0/site/lib<br/> c:/dev/plp/platform/pc_i/PI/scitegic root/apps/scitegic/core/packages_win64/perl/perl-5.30.0/lib<br/><br/>---<br/>Environment for perl 5.30.0:<br/> HOME (unset)<br/> LANG (unset)<br/> LANGUAGE (unset)<br/> LD_LIBRARY_PATH (unset)<br/> LOGDIR (unset)<br/> PATH=C:\Program Files\Microsoft MPI\Bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Perforce;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Xoreax\IncrediBuild;C:\Program Files\Perforce\DVCS\;C:\Users\sbh1\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft MPI\Bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Perforce;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files<br/>(x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Xoreax\IncrediBuild;C:\Program Files\Perforce\DVCS\;C:\Users\sbh1\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;c:\dev\plp\platform\pc_i\PI\scitegic root\apps\scitegic\core\packages_win64\perl\perl-5.30.0\bin;c:\bats;c:\python27;C:\Program Files (x86)\nasm;C:\Program Files (x86)\CMake\bin;D:\dev\plp\platform\trunk\PI\scitegic root\apps\scitegic\openssl\bin\win64<br/> PERL_BADLANG (unset)<br/> SHELL (unset)<br/><br/>--------------1.41.perlbug<br/>Content-Type: text/x-patch; name=&quot;perl.c-patch&quot;<br/>Content-Transfer-Encoding: 8bit<br/>Content-Disposition: attachment; filename=&quot;perl.c-patch&quot;<br/><br/>--- C:/dev/perl.c Tue Sep 17 13:21:31 2019<br/><br/>+++ C:/dev/perl.c-FIXED Tue Sep 17 12:12:36 2019<br/><br/>@@ -1254,6 +1254,7 @@<br/><br/> /* the 2 is for PL_fdpid and PL_strtab */<br/><br/> while (sv_clean_all() &gt; 2)<br/><br/> ;<br/><br/>+ PL_InBitmap = NULL;<br/><br/><br/><br/> #ifdef USE_ITHREADS<br/><br/> Safefree(PL_stashpad); /* must come after sv_clean_all */<br/><br/><br/>--------------1.41.perlbug--<br/>This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged.<br/><br/>If you are not one of the named recipients or have received this email in error,<br/><br/>(i) you should not read, disclose, or copy it,<br/><br/>(ii) please notify sender of your receipt by reply email and delete this email and all attachments,<br/><br/>(iii) Dassault Syst&Atilde;&uml;mes does not accept or assume any liability or responsibility for any use of or reliance on this email.<br/><br/><br/>Please be informed that your personal data are processed according to our data privacy policy as described on our website. Should you have any questions related to personal data protection, please contact 3DS Data Protection Officer at 3DS.compliance-privacy@3ds.com&lt;mailto:3DS.compliance-privacy@3ds.com&gt;<br/><br/><br/>For other languages, go to https://www.3ds.com/terms/email-disclaimer<br/><br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256241.html Fri, 20 Sep 2019 01:20:55 +0000 Re: Rethinking PERL_xxx env vars. by Tony Cook On Mon, Sep 16, 2019 at 11:24:08AM +0200, demerphq wrote:<br/>&gt; I recently encountered an annoyance with perl env vars, where setting one<br/>&gt; of the vars for development purposes broke git, which uses perl for its<br/>&gt; tooling.<br/>&gt; <br/>&gt; I then did some digging and determined that there is no way to tell perl<br/>&gt; &quot;ignore the environment&#39;, nor is there a way to have per application<br/>&gt; settings without using a wrapper of some form to clean the env.<br/>&gt; <br/>&gt; I think this is suboptimal.<br/>&gt; <br/>&gt; So I was thinking we should have a facility that a) causes perl to ignore<br/>&gt; the environment[1], and b) that allows one to specify a prefix to use when<br/>&gt; reading env vars. Thus git could set the prefix to GIT_ which would mean<br/>&gt; perl would read GIT_PERL5LIB etc.<br/>&gt; <br/>&gt; I am not entirely certain how this would work, perhaps an option on the<br/>&gt; shebang line. Ideas welcome.<br/>&gt; <br/>&gt; Yves<br/>&gt; [1] despite the temptation we probably shouldn&#39;t name this after any of the<br/>&gt; many political movements that also ignore the environment. &#x1F601;<br/>Hopefully you couldn&#39;t set this switch via PERL5OPT.<br/><br/>One problem is some environment variables are accessed before we<br/>process options, like PERL_INTERNAL_RAND_SEED, and potentially<br/>PERLIO_DEBUG.<br/><br/>I believe more are accessed before we process the shebang line.<br/><br/>Tony<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256240.html Fri, 20 Sep 2019 01:03:39 +0000 Re: [WIP-PATCH] Document the various interpreter stacks by Tony Cook This all looks good, though I have a couple of suggestions.<br/><br/>On Wed, Sep 18, 2019 at 04:28:34PM +0100, Paul &quot;LeoNerd&quot; Evans wrote:<br/>&gt; +=head1 Stacks<br/>&gt; +<br/>&gt; +Descriptions above occasionally refer to &quot;the stack&quot;, but there are in fact<br/>&gt; +many stack-like data structures within the perl interpreter. When otherwise<br/>&gt; +unqualified, &quot;the stack&quot; usually refers to the value stack.<br/>&gt; +<br/>&gt; +The various stacks have different purposes, and operate in slightly different<br/>&gt; +ways. Their differences are noted below.<br/>&gt; +<br/>&gt; +=head2 Value Stack<br/>&gt; +<br/>&gt; +This stack stores the values that regular perl code is operating on, usually<br/>&gt; +intermediate values of expressions within a statement. The stack itself is<br/>&gt; +formed of an array of SV pointers.<br/>&gt; +<br/>&gt; +The base of this stack is pointed to by the interpreter variable<br/>&gt; +C&lt;PL_stack_base&gt;, of type C&lt;SV **&gt;.<br/>&gt; +<br/>&gt; +The head of the stack is C&lt;PL_stack_sp&gt;, and points to the most<br/>&gt; +recently-pushed item.<br/>&gt; +<br/>&gt; +Items are pushed to the stack by using the C&lt;PUSHs()&gt; macro or its variants<br/>&gt; +described above; C&lt;XPUSHs()&gt;, C&lt;mPUSHs()&gt;, C&lt;mXPUSHs()&gt; and the typed<br/>&gt; +versions.<br/>&gt; +<br/>&gt; +Items are popped from the stack by using the C&lt;POPs&gt; macro or its typed<br/>&gt; +versions, There is also a macro C&lt;TOPs&gt; that inspects the topmost item without<br/>&gt; +removing it.<br/>&gt; +<br/>&gt; +Note specifically that SV pointers on the value stack do not contribute to the<br/>&gt; +overall reference count of the xVs being referred to. If newly-created xVs are<br/>&gt; +being pushed to the stack you must arrange for them to be destroyed at a<br/>&gt; +suitable time; usually by using one of the C&lt;mPUSH*&gt; macros or C&lt;sv_2mortal()&gt;<br/>&gt; +to mortalise the xV.<br/><br/>This should mention EXTEND().<br/><br/>It might be worth mentioning PUSHSTACKi() too.<br/><br/>&gt; +<br/>&gt; +=head2 Mark Stack<br/>&gt; +<br/>&gt; +The value stack stores individual perl scalar values as temporaries between<br/>&gt; +expressions. Some perl expressions operate on entire lists; for that purpose<br/>&gt; +we need to know where on the stack each list begins. This is the purpose of the<br/>&gt; +mark stack.<br/>&gt; +<br/>&gt; +The mark stack stores integers as I32 values, which are the height of the<br/>&gt; +value stack at the time before the list began; thus the mark itself actually<br/>&gt; +points to the value stack entry one before the list. The list itself starts at<br/>&gt; +C&lt;mark + 1&gt;.<br/>&gt; +<br/>&gt; +The base of this stack is pointed to by the interpreter variable<br/>&gt; +C&lt;PL_markstack&gt;, of type C&lt;I32 *&gt;.<br/>&gt; +<br/>&gt; +The head of the stack is C&lt;PL_markstack_ptr&gt;, and points to the most<br/>&gt; +recently-pushed item.<br/>&gt; +<br/>&gt; +Items are pushed to the stack by using the C&lt;PUSHMARK()&gt; macro. Even though<br/>&gt; +the stack itself stores (value) stack indices as integers, the C&lt;PUSHMARK&gt;<br/>&gt; +macro should be given a stack pointer directly; it will calculate the index<br/>&gt; +offset by comparing to the C&lt;PL_stack_sp&gt; variable. Thus almost always the<br/>&gt; +code to perform this is<br/>&gt; +<br/>&gt; + PUSHMARK(SP);<br/>&gt; +<br/>&gt; +Items are popped from the stack by the C&lt;POPMARK&gt; macro. There is also a macro<br/>&gt; +C&lt;TOPMARK&gt; that inspects the topmost item without removing it. These macros<br/>&gt; +return I32 index values directly. There is also the C&lt;dMARK&gt; macro which<br/>&gt; +declares a new SV double-pointer variable, called C&lt;mark&gt;, which points at the<br/>&gt; +marked stack slot; this is the usual macro that C code will use when operating<br/>&gt; +on lists given on the stack.<br/>&gt; +<br/>&gt; +As noted above, the C&lt;mark&gt; variable itself will point at the most recently<br/>&gt; +pushed value on the value stack before the list begins, and so the list itself<br/>&gt; +starts at C&lt;mark + 1&gt;. The values of the list may be iterated by code such as<br/>&gt; +<br/>&gt; + for(SV **svp = mark + 1; svp &lt;= PL_stack_sp; svp++) {<br/>&gt; + SV *item = *svp;<br/>&gt; + ...<br/>&gt; + }<br/>&gt; +<br/>&gt; +Note specifically in the case that the list is already empty, C&lt;mark&gt; will<br/>&gt; +equal C&lt;PL_stack_sp&gt;.<br/><br/>It might be worth mentioning that mark may become invalid if the value<br/>stack is extended (see 57bd6600 for example.)<br/><br/>Tony<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256239.html Thu, 19 Sep 2019 23:22:21 +0000 Re: Rethinking PERL_xxx env vars. by Karl Williamson On 9/19/19 10:25 AM, demerphq wrote:<br/>&gt; On Tue, 17 Sep 2019 at 11:37, David Cantrell &lt;david@cantrell.org.uk&gt; wrote:<br/>&gt;&gt;<br/>&gt;&gt; On Mon, Sep 16, 2019 at 11:24:08AM +0200, demerphq wrote:<br/>&gt;&gt;<br/>&gt;&gt;&gt; So I was thinking we should have a facility that a) causes perl to ignore<br/>&gt;&gt;&gt; the environment[1], and b) that allows one to specify a prefix to use when<br/>&gt;&gt;&gt; reading env vars. Thus git could set the prefix to GIT_ which would mean<br/>&gt;&gt;&gt; perl would read GIT_PERL5LIB etc.<br/>&gt; <br/>&gt; Anybody else have any thoughts on this? Added a few names to CC to get<br/>&gt; your attention...<br/>&gt; <br/>&gt; Yves<br/>&gt; <br/><br/>It sounds reasonable to me<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256238.html Thu, 19 Sep 2019 17:15:28 +0000 Re: Rethinking PERL_xxx env vars. by demerphq On Tue, 17 Sep 2019 at 11:37, David Cantrell &lt;david@cantrell.org.uk&gt; wrote:<br/>&gt;<br/>&gt; On Mon, Sep 16, 2019 at 11:24:08AM +0200, demerphq wrote:<br/>&gt;<br/>&gt; &gt; So I was thinking we should have a facility that a) causes perl to ignore<br/>&gt; &gt; the environment[1], and b) that allows one to specify a prefix to use when<br/>&gt; &gt; reading env vars. Thus git could set the prefix to GIT_ which would mean<br/>&gt; &gt; perl would read GIT_PERL5LIB etc.<br/><br/>Anybody else have any thoughts on this? Added a few names to CC to get<br/>your attention...<br/><br/>Yves<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256237.html Thu, 19 Sep 2019 16:25:56 +0000 [perl #134329] Use-After-Free in regcomp.c:5617 by Sawyer X via RT On Sat, 31 Aug 2019 07:40:43 -0700, nguyenmanhdung1710@gmail.com wrote:<br/>&gt; On Fri, 30 Aug 2019 07:23:52 -0700, khw wrote:<br/>&gt; &gt; Thanks for finding and reporting this<br/>&gt; &gt; Fixed by<br/>&gt; &gt; <br/>&gt; &gt; 3b2e5620ed4a6b341f97ffd1d4b6466cc2c4bc5b<br/>&gt; <br/>&gt; Can I request a CVE for this bug? Thanks.<br/><br/>Hi,<br/><br/>[I&#39;ve included this response in RT#134325 as well.<br/><br/>I&#39;m quoting Tony Cook here:<br/><br/> All cases for both tickets are bad reads, either of freed memory, or<br/> beyond the end of a buffer.<br/><br/> None of the reads result in returning data to a potential attacker<br/> that I can see.<br/><br/> According to our usual criteria such reads aren&#39;t a security issue.<br/><br/> Can an attacker craft a regexp with data at the offset 65535 point to<br/> do undesirable things? Could they make the engine loop at regexp<br/> compile time or runtime so control isn&#39;t returned to the calling perl<br/> code?<br/><br/> I&#39;m not sure.<br/><br/>While we are looking into this, we would appreciate any help in proving this. If we can answer Tony&#39;s questions, we can discern better if this suits as a security issue.<br/><br/>---<br/>via perlbug: queue: perl5 status: pending release<br/>https://rt.perl.org/Ticket/Display.html?id=134329<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256236.html Thu, 19 Sep 2019 06:11:45 +0000 [perl #134325] Heap buffer overflow by Sawyer X via RT On Sat, 31 Aug 2019 11:15:36 -0700, nguyenmanhdung1710@gmail.com wrote:<br/>&gt; Thanks for the patch. Do you think it is an exploitable bug? Can I request<br/>&gt; a CVE for this bug?<br/><br/>Hi,<br/><br/>I&#39;m quoting Tony Cook here:<br/><br/> All cases for both tickets are bad reads, either of freed memory, or<br/> beyond the end of a buffer.<br/><br/> None of the reads result in returning data to a potential attacker<br/> that I can see.<br/><br/> According to our usual criteria such reads aren&#39;t a security issue.<br/><br/> Can an attacker craft a regexp with data at the offset 65535 point to<br/> do undesirable things? Could they make the engine loop at regexp<br/> compile time or runtime so control isn&#39;t returned to the calling perl<br/> code?<br/><br/> I&#39;m not sure.<br/><br/>While we are looking into this, we would appreciate any help in proving this. If we can answer Tony&#39;s questions, we can discern better if this suits as a security issue.<br/><br/>---<br/>via perlbug: queue: perl5 status: pending release<br/>https://rt.perl.org/Ticket/Display.html?id=134325<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256235.html Thu, 19 Sep 2019 06:10:45 +0000 [perl #134233] 5.31.1; Porting/pumpkin.pod -patch- Perl5-portersmailing list by Tony Cook via RT On Fri, 28 Jun 2019 01:42:57 -0700, van@scratch.space wrote:<br/>&gt; Hello, there.<br/>&gt; <br/>&gt; Please accept the attached patch to update details in &#39;pumpkin.pod&#39;<br/>&gt; about the Perl5-porters mailing list.<br/>&gt; <br/>&gt; -- VanL<br/><br/>Thanks, applied as 3bc4d3163a2f07c1d74a0c97030ad4e13a9868a5.<br/><br/>Tony<br/><br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=134233<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256234.html Thu, 19 Sep 2019 05:13:14 +0000 [perl #134237] A Metaconfig probe for malloc_usable_size by Tony Cook via RT On Sun, 30 Jun 2019 01:17:03 -0700, rich+perl@hyphen-dash-hyphen.info wrote:<br/>&gt; Hi,<br/>&gt; <br/>&gt; As mentioned on IRC, malloc_usable_size<br/>&gt; (http://man7.org/linux/man-pages/man3/malloc_usable_size.3.html) seems<br/>&gt; to be pretty common amongst Linux and BSD malloc implementations<br/>&gt; nowadays. Metaconfig has a probe for the similar malloc_size on<br/>&gt; Darwin, added in<br/>&gt; https://perl5.git.perl.org/metaconfig.git/commit/83994881900edacd8c4e4d6534b1545554bb8274<br/>&gt; <br/>&gt; Should a probe for malloc_usable_size should have its own file or be<br/>&gt; appended to d_malloc_size.U due to the functional similarity?<br/>&gt; Speculative patches are attached. (Once in, the intention is to add an<br/>&gt; alternative definition to Perl_safesysmalloc_size.)<br/>&gt; <br/>&gt; xenu pointed out that it would be useful to capture the minimum<br/>&gt; allocation in a variable (e.g. MIN_MALLOC_SIZE). Where would be the<br/>&gt; best place to do so?<br/><br/>This was applied to metaconfig in 57477b42de912c3480c17bf3f43615a2cb7b6fc6:<br/><br/>https://github.com/perl5-metaconfig/metaconfig/commit/57477b42de912c3480c17bf3f43615a2cb7b6fc6<br/><br/>and in perl in blead as e62a0811bc2b623845ce4994e77bb5f224466c7e.<br/><br/>Thanks,<br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: new<br/>https://rt.perl.org/Ticket/Display.html?id=134237<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256233.html Thu, 19 Sep 2019 04:13:52 +0000 Re: [perl #134439] Segfault (memory access violation) inPerl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0 by Tony Cook On Wed, Sep 18, 2019 at 08:23:38AM -0700, Karl Williamson via RT wrote:<br/>&gt; On Tue, 17 Sep 2019 23:03:05 -0700, tonyc wrote:<br/>&gt; &gt; On Tue, 17 Sep 2019 14:50:07 -0700, steven.bush@3ds.com wrote:<br/>&gt; &gt; &gt; The crash is occurring with regex expressions containing character<br/>&gt; &gt; &gt; sets &quot;[abc]&quot;<br/>&gt; &gt; <br/>&gt; &gt; Do you have a more complete example of this?<br/>&gt; &gt; <br/>&gt; &gt; I&#39;ve tried some simple code that exercises regexps with [abc], but<br/>&gt; &gt; haven&#39;t managed to make it fault, even with valgrind running the<br/>&gt; &gt; executable.<br/>&gt; &gt; <br/>&gt; &gt; My test code is running the code twice and PL_InBitmap is the same<br/>&gt; &gt; after each run, so I can see there is a problem, but I&#39;m not seeing<br/>&gt; &gt; the crash, which I&#39;d like for a regression test.<br/>&gt; &gt; <br/>&gt; &gt; Thanks,<br/>&gt; &gt; Tony<br/>&gt; <br/>&gt; It would be great to have the data for a regression test, but Steven has done an admirable job of diagnosing the problem. I prefer the attached patch, as it keeps the initialization of all the similar variables in the same place<br/><br/>I wonder if this is just generally unsafe.<br/><br/>Could PL_InBitmap be initialized by a child thread?<br/><br/>This would leave PL_InBitmap invalid once the child thread exits.<br/><br/>It&#39;s also possible a CPAN module could call perl_construct(), and<br/>threads::lite does just that, which would overwrite PL_InBitmap with a<br/>new SV that would no longer be valid once the thread exits.<br/><br/>The other inversion list globals have similar issues, as far as I can<br/>see.<br/><br/>Tony<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256232.html Thu, 19 Sep 2019 01:23:53 +0000 Re: [perl #134212] Failed making perl5 at lib/buildcustomize.pl by Karl Williamson On 9/16/19 7:23 PM, Tony Cook wrote:<br/>&gt; On Mon, Sep 16, 2019 at 01:37:00PM -0700, Karl Williamson via RT wrote:<br/>&gt;&gt; On Sun, 15 Sep 2019 23:53:04 -0700, tonyc wrote:<br/>&gt;&gt;&gt; On Sun, 23 Jun 2019 18:19:35 -0700, tonyc wrote:<br/>&gt;&gt;&gt;&gt; Is there any chance you can get valgrind on the VM?<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; While this would still be useful, I have a suspicion of the cause.<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; READ of size 2 at 0x6020000006b0 thread T0<br/>&gt;&gt;&gt; #0 0x45c608 in __interceptor_setlocale<br/>&gt;&gt;&gt; /scratch/llvm/clang-4/xenial/final/llvm.src/projects/compiler-<br/>&gt;&gt;&gt; rt/lib/asa<br/>&gt;&gt;&gt; n/../sanitizer_common/sanitizer_common_interceptors.inc:2875:5<br/>&gt;&gt;&gt; #1 0x887905 in Perl_upg_version /root/Fuzz/perl/./vutil.c:717:17<br/>&gt;&gt;&gt; #2 0x8853ed in Perl_new_version /root/Fuzz/perl/./vutil.c:551:12<br/>&gt;&gt;&gt; #3 0xb31ee3 in S_require_version /root/Fuzz/perl/pp_ctl.c:3719:10<br/>&gt;&gt;&gt; #4 0xb31ee3 in Perl_pp_require /root/Fuzz/perl/pp_ctl.c:4345<br/>&gt;&gt;&gt; #5 0x863dbc in Perl_runops_debug /root/Fuzz/perl/dump.c:2537:23<br/>&gt;&gt;&gt; #6 0x5d0f4c in Perl_call_sv /root/Fuzz/perl/perl.c:3043:6<br/>&gt;&gt;&gt; #7 0x5bbc7d in Perl_call_list /root/Fuzz/perl/perl.c:5077:6<br/>&gt;&gt;&gt; #8 0x56962e in S_process_special_blocks<br/>&gt;&gt;&gt; /root/Fuzz/perl/op.c:10469:6<br/>&gt;&gt;&gt; #9 0x539626 in Perl_newATTRSUB_x /root/Fuzz/perl/op.c:10395:21<br/>&gt;&gt;&gt; #10 0x541522 in Perl_utilize /root/Fuzz/perl/op.c:7590:5<br/>&gt;&gt;&gt; #11 0x6dfaa0 in Perl_yyparse /root/Fuzz/perl/perly.y:336:6<br/>&gt;&gt;&gt; #12 0x5c88c4 in S_parse_body /root/Fuzz/perl/perl.c:2531:9<br/>&gt;&gt;&gt; #13 0x5bf965 in perl_parse /root/Fuzz/perl/perl.c:1822:2<br/>&gt;&gt;&gt; #14 0xde129c in main /root/Fuzz/perl/miniperlmain.c:132:10<br/>&gt;&gt;&gt; #15 0x7f21e137a82f in __libc_start_main<br/>&gt;&gt;&gt; (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)<br/>&gt;&gt;&gt; #16 0x41c358 in _start (/root/Fuzz/perl/miniperl+0x41c358)<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; Here&#39;s the code in question (minus the irrelevant code):<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; const char * locale_name_on_entry;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; LC_NUMERIC_LOCK(0); /* Start critical section */<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; locale_name_on_entry = setlocale(LC_NUMERIC, NULL); &lt;-- get current<br/>&gt;&gt;&gt; locale name (possibly malloced())<br/>&gt;&gt;&gt; if ( strNE(locale_name_on_entry, &quot;C&quot;)<br/>&gt;&gt;&gt; &amp;&amp; strNE(locale_name_on_entry, &quot;POSIX&quot;))<br/>&gt;&gt;&gt; {<br/>&gt;&gt;&gt; setlocale(LC_NUMERIC, &quot;C&quot;); &lt;-- change locale, possibly freeing<br/>&gt;&gt;&gt; locale_name_on_entry<br/>&gt;&gt;&gt; }<br/>&gt;&gt;&gt; else { /* This value indicates to the restore code that we didn&#39;t<br/>&gt;&gt;&gt; change the locale */<br/>&gt;&gt;&gt; locale_name_on_entry = NULL;<br/>&gt;&gt;&gt; }<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; ...<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; if (locale_name_on_entry) {<br/>&gt;&gt;&gt; setlocale(LC_NUMERIC, locale_name_on_entry); &lt;-- use freed value<br/>&gt;&gt;&gt; }<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; The lifetime of the string returned by setlocale() isn&#39;t well<br/>&gt;&gt;&gt; documented, but it is documented that it *may* be return a pointer to<br/>&gt;&gt;&gt; static storage, in which case the setlocale(LC_NUMERIC, &quot;C&quot;) may<br/>&gt;&gt;&gt; overwrite it, making the value useless for restoring the locale.<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; The attached should fix it.<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; #134182 (which I found after checking the version.pm PRs) has an<br/>&gt;&gt;&gt; incomplete patch for this.<br/>&gt;&gt;&gt;<br/>&gt;&gt;&gt; Tony<br/>&gt;&gt;<br/>&gt;&gt; Why not just do a saave the first time? It would be less code that could get out of sync. When it is unclear what is going to happen in the interim, locale.c makes it a SAVEFREEPV<br/>&gt; <br/>&gt; I had a WIP that used SAVEFREEPV(), but in this case we have an<br/>&gt; obvious place to do the free(), and while SAVEFREEPV() isn&#39;t expensive<br/>&gt; (most of the cost is fixed in the LEAVE itself) it isn&#39;t free either.<br/>&gt; <br/>&gt; Or did I misunderstand what you&#39;re asking here?<br/><br/>I hadn&#39;t examined it enough in detail to realize there was only one <br/>place to do the free. I was trying to suggest that if it could return <br/>early, you would use that. locale.c does both, depending on the situation.<br/><br/>&gt; <br/>&gt; Tony<br/>&gt; <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256231.html Thu, 19 Sep 2019 00:30:53 +0000 [WIP-PATCH] Document the various interpreter stacks by Paul "LeoNerd" Evans As the final part of my TPF grant for Future-AsyncAwait work, I have<br/>been writing some good detailed documentation on the research I did<br/>about the various internal stacks within the interpreter.<br/><br/>I couldn&#39;t find a very good place to write it, so for now I have added<br/>a section to perlguts.pod. Shortly before submitting this though, I<br/>discovered there is an existing summary of a few in perlinterp.pod,<br/>though my descriptions here go into quite a bit more detail than those.<br/><br/>I&#39;d like first to have a review on the overall style and accuracy of<br/>what I&#39;ve written here, irrespective of where it will go. Once we agree<br/>on the words to say, I shall have a go at moving/merging them into the<br/>appropriate places, either perlguts or perlinterp.<br/><br/>-- <br/>Paul &quot;LeoNerd&quot; Evans<br/><br/>leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS<br/>http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256230.html Wed, 18 Sep 2019 15:28:59 +0000 [perl #134439] Segfault (memory access violation) inPerl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0 by Karl Williamson via RT On Tue, 17 Sep 2019 23:03:05 -0700, tonyc wrote:<br/>&gt; On Tue, 17 Sep 2019 14:50:07 -0700, steven.bush@3ds.com wrote:<br/>&gt; &gt; The crash is occurring with regex expressions containing character<br/>&gt; &gt; sets &quot;[abc]&quot;<br/>&gt; <br/>&gt; Do you have a more complete example of this?<br/>&gt; <br/>&gt; I&#39;ve tried some simple code that exercises regexps with [abc], but<br/>&gt; haven&#39;t managed to make it fault, even with valgrind running the<br/>&gt; executable.<br/>&gt; <br/>&gt; My test code is running the code twice and PL_InBitmap is the same<br/>&gt; after each run, so I can see there is a problem, but I&#39;m not seeing<br/>&gt; the crash, which I&#39;d like for a regression test.<br/>&gt; <br/>&gt; Thanks,<br/>&gt; Tony<br/><br/>It would be great to have the data for a regression test, but Steven has done an admirable job of diagnosing the problem. I prefer the attached patch, as it keeps the initialization of all the similar variables in the same place<br/>-- <br/>Karl Williamson<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=134439<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256229.html Wed, 18 Sep 2019 15:23:49 +0000 [perl #134439] Segfault (memory access violation) inPerl__invlist_intersection_maybe_complement_2nd in Perl 5.30.0 by Tony Cook via RT On Tue, 17 Sep 2019 14:50:07 -0700, steven.bush@3ds.com wrote:<br/>&gt; The crash is occurring with regex expressions containing character<br/>&gt; sets &quot;[abc]&quot;<br/><br/>Do you have a more complete example of this?<br/><br/>I&#39;ve tried some simple code that exercises regexps with [abc], but haven&#39;t managed to make it fault, even with valgrind running the executable.<br/><br/>My test code is running the code twice and PL_InBitmap is the same after each run, so I can see there is a problem, but I&#39;m not seeing the crash, which I&#39;d like for a regression test.<br/><br/>Thanks,<br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: new<br/>https://rt.perl.org/Ticket/Display.html?id=134439<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256228.html Wed, 18 Sep 2019 06:03:15 +0000 Perl 5 Commit Summary by Perl 5 commit summary Perl 5 commit summary, activity since Saturday<br/><br/>Current branch blead<br/>44 commits. 4 unique authors. 4 unique committers.<br/>30 files changed, 1420 insertions(+), 582 deletions(-)<br/><br/>Snapshot: http://perl5.git.perl.org/perl.git/snapshot/6e385be511827542.tar.gz<br/><br/> perldelta: Add note that documentation has been added to perlapi,perlintern<br/> Karl Williamson 1 file changed, 3 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/6e385be511827542<br/><br/> Add check for malloc_usable_size (Richard Leach)<br/> H.Merijn Brand 1 file changed, 6 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/e62a0811bc2b6238<br/><br/> perldelta for 2cb5a7e8af11<br/> Tony Cook 1 file changed, 6 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/7118f70435752910<br/><br/> (perl #125557) correctly handle overload for bin/oct floats<br/> Tony Cook 2 files changed, 31 insertions(+), 6 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/2cb5a7e8af11acb0<br/><br/> regcomp.sym: Fix comment<br/> Karl Williamson 3 files changed, 4 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/3ace85ea4f1777b7<br/><br/> Merge branch &#39;embed.fnc&#39; into blead<br/> Karl Williamson 2 parents<br/> http://perl5.git.perl.org/perl.git/commit/8234439d1b57e10c<br/><br/> regen/embed.pl: Enforce some flag restrictions<br/> Karl Williamson 1 file changed, 14 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/c490e11f0b40be46<br/><br/> regen/embed.pl: Update a branch test<br/> Karl Williamson 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/fe4f8666d6b1432d<br/><br/> embed.fnc: M and o flags don&#39;t make sense together<br/> Karl Williamson 1 file changed, 5 insertions(+), 5 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/917b9b5460600d15<br/><br/> embed.fnc: &#39;m&#39; and &#39;p&#39; flags don&#39;t make sense together<br/> Karl Williamson 3 files changed, 15 insertions(+), 12 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/5178f485275d46a2<br/><br/> perlapi: Properly document Perl_custom_op_xop()<br/> Karl Williamson 3 files changed, 6 insertions(+), 4 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/9c10ff02ede505e0<br/><br/> autodoc.pl: Special case macros whose name begins with Perl_<br/> Karl Williamson 2 files changed, 4 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/2f4e63396c17fcbf<br/><br/> embed.fnc: Add some comment about name space pollution<br/> Karl Williamson 1 file changed, 40 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/f0656a59b1612929<br/><br/> embed.fnc: E, X flags don&#39;t make sense with m<br/> Karl Williamson 1 file changed, 3 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/4060a4c6ff8a5525<br/><br/> Document IS_SAFE_SYSCALL<br/> Karl Williamson 1 file changed, 12 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/6bed70292d99c321<br/><br/> perlapi: Improve description of is_safe_syscall()<br/> Karl Williamson 1 file changed, 6 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/1a0efc9a50cf12f7<br/><br/> embed.fnc: Add p flag for is_utf8_non_invariant_string()<br/> Karl Williamson 4 files changed, 4 insertions(+), 4 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/86a87e17c5d1d82c<br/><br/> Add embed.fnc entry for ReANY<br/> Karl Williamson 3 files changed, 9 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/bdef45de9c7826f7<br/><br/> Add embed.fnc entries for TOPMARK, POPMARK<br/> Karl Williamson 2 files changed, 10 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/2ac0ce0e1ab81099<br/><br/> Add Perl_ to SvAMAGIC _off,_on names<br/> Karl Williamson 4 files changed, 20 insertions(+), 2 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/1bd041dce8bb8fa2<br/><br/> Add embed.fnc entries for Cv inline fcns<br/> Karl Williamson 4 files changed, 19 insertions(+), 3 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/74804ad189340f28<br/><br/> Fix up get_regex_charset_name()<br/> Karl Williamson 4 files changed, 20 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/94b0cb42d04bb202<br/><br/> inline.h: Move some fcn &#39;{&#39; to column 1<br/> Karl Williamson 1 file changed, 6 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/ffd62fc2fb74955c<br/><br/> Make PadnameIN_SCOPE() name begin with S_<br/> Karl Williamson 4 files changed, 16 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/b9d5702c94e722aa<br/><br/> Some SvREFCNT_foo are no longer macros<br/> Karl Williamson 4 files changed, 38 insertions(+), 6 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/3f2f854a8971dad2<br/><br/> Strip leading underscore _variant_byte_number()<br/> Karl Williamson 5 files changed, 9 insertions(+), 9 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/73f0a2ebf04911b8<br/><br/> Change name of _utf8_to_uvchr_buf()<br/> Karl Williamson 6 files changed, 11 insertions(+), 11 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/9a9a6c9859e31a91<br/><br/> Strip leading underscore from is_utf8_char_helper()<br/> Karl Williamson 6 files changed, 15 insertions(+), 15 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/1376b35c0aca7ec6<br/><br/> inline.h: Change fcn name prefix from S_ to Perl_<br/> Karl Williamson 9 files changed, 169 insertions(+), 169 deletion<br/> http://perl5.git.perl.org/perl.git/commit/c9182d9cfe39bfb5<br/><br/> regen/embed.pl: Generally generate an ARGS_ASSERT<br/> Karl Williamson 4 files changed, 558 insertions(+), 7 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/2015d234640f7832<br/><br/> regen/embed.pl: Wrap #if..#endif differently<br/> Karl Williamson 1 file changed, 3 insertions(+), 4 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/edfae0c7aede11b7<br/><br/> embed.fnc: Mark atof2, atof3 for internal use only<br/> Karl Williamson 1 file changed, 2 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/2378c9f3cbe3ce31<br/><br/> sv.h: SVt_INVLIST is core-only<br/> Karl Williamson 1 file changed, 2 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/f85ae7874530f217<br/><br/> embed.fnc: Change some &#39;x&#39; marked fcns to &#39;C&#39;<br/> Karl Williamson 4 files changed, 128 insertions(+), 124 deletion<br/> http://perl5.git.perl.org/perl.git/commit/0923255565af0741<br/><br/> Add &#39;C&#39; flag to embed.fnc, for &quot;core-only&quot; fcns<br/> Karl Williamson 4 files changed, 20 insertions(+), 5 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/ff5af78dc3432f87<br/><br/> embed.fnc: Clarify comments, and note &#39;u&#39; flag exceptions<br/> Karl Williamson 1 file changed, 137 insertions(+), 87 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/dcd299b49cf3c7bd<br/><br/> mathoms.c: Add comment<br/> Karl Williamson 1 file changed, 4 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/af50ae69325d1ddb<br/><br/> t/re/anyof.t: Fix test names<br/> Karl Williamson 1 file changed, 1 insertion(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/dcafa39d55218b79<br/><br/> regcomp.c: Fix -Dr bug<br/> Karl Williamson 1 file changed, 8 insertions(+), 3 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/0cc31f4df460bf42<br/><br/> regcomp.c: Collapse some code<br/> Karl Williamson 1 file changed, 25 insertions(+), 81 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/cfba2ecca3ba2c25<br/><br/> Generalize inRANGE()<br/> Karl Williamson 1 file changed, 6 insertions(+), 19 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/4758c20d21341aad<br/><br/> Add withinCOUNT() macro and change inRANGE to use it<br/> Karl Williamson 1 file changed, 9 insertions(+), 2 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/833b0f46f2b67376<br/><br/> perl.h: Fix typo in comment<br/> Karl Williamson 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/a15223fd18aff8e1<br/><br/> Avoid panic when last s///g is tainted and utf8<br/> David Mitchell 2 files changed, 41 insertions(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/4a69216a74159df7<br/><br/>New branch smoke-me/khw-lexact<br/>4 commits. 1 unique author. 1 unique committer.<br/><br/>Snapshot: http://perl5.git.perl.org/perl.git/snapshot/0815f5d3102b0250.tar.gz<br/><br/> f<br/> Karl Williamson 1 file changed, 3 insertions(+), 4 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/0815f5d3102b0250<br/><br/> f<br/> Karl Williamson 2 files changed, 47 insertions(+), 25 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/eb8f0ab482110da5<br/><br/> smoke<br/> Karl Williamson 6 files changed, 210 insertions(+), 160 deletion<br/> http://perl5.git.perl.org/perl.git/commit/8224bce37e0350a2<br/><br/> Configure<br/> Karl Williamson 1 file changed, 1 insertion(+), 5 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/b70bec77043d0326<br/><br/>Deleted branch smoke-me/khw-ppport<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256227.html Wed, 18 Sep 2019 03:14:34 +0000 DAVEM TPF grant#2 weekly report for week #279 by Dave Mitchell Spent last week fixing an obscure bug to do with s///, taint and utf8<br/><br/>SUMMARY:<br/> 5:11 RT #134409 Perl intepreter exception on expression substitution<br/> ------<br/> 5:11 TOTAL (HH::MM)<br/><br/>-- <br/>The Enterprise successfully ferries an alien VIP from one place to another<br/>without serious incident.<br/> -- Things That Never Happen in &quot;Star Trek&quot; #7<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256226.html Tue, 17 Sep 2019 10:02:36 +0000 Re: Rethinking PERL_xxx env vars. by David Cantrell On Mon, Sep 16, 2019 at 11:24:08AM +0200, demerphq wrote:<br/><br/>&gt; So I was thinking we should have a facility that a) causes perl to ignore<br/>&gt; the environment[1], and b) that allows one to specify a prefix to use when<br/>&gt; reading env vars. Thus git could set the prefix to GIT_ which would mean<br/>&gt; perl would read GIT_PERL5LIB etc.<br/><br/>Yes yes yes a thousand times yes!<br/><br/>&gt; I am not entirely certain how this would work, perhaps an option on the<br/>&gt; shebang line. Ideas welcome.<br/><br/>I most recently ran into this problem when I was hacking on the guts of<br/>one of my own modules but needed to run the old version momentarily. I<br/>got terribly confused until I realised that I had PERL5LIB=lib and so<br/>was always loading the development version of my code.<br/><br/>And yes, a command line switch would seem to be the best way to do this,<br/>set &#39;-X foo&#39; to set the prefix to &#39;foo_&#39;. Maybe &#39;-X !&#39; for &quot;don&#39;t use<br/>the PERL* variables at all&quot; and &#39;-X !PERL5LIB:PERLIO:...&#39; for &quot;don&#39;t use<br/>these variables&quot;.<br/><br/>For suitable values of X and !, of course. I chose ! because it&#39;s<br/>illegal in POSIX env var names (only ASCII alphanumerics and underscores<br/>allowed) and for it&#39;s mnemonic associations, but someone who knows<br/>Windows, VMS, and any other platforms we still care about should check<br/>what is restricted there.<br/><br/>PERL5OPT=-X... requires some thought :-)<br/><br/>And why do we have both PERL5LIB and PERLLIB as well as all the PERL_*<br/>vars? It&#39;s a bit of an inconsistent mess.<br/><br/>-- <br/>David Cantrell | Enforcer, South London Linguistic Massive<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256225.html Tue, 17 Sep 2019 09:37:42 +0000 Re: Formal Request - Discourage Taint by Dave Mitchell On Mon, Sep 16, 2019 at 12:00:58PM -0400, Chase Whitener wrote:<br/>&gt; I&#39;m not sure who decides when a consensus has been reached, but if<br/>&gt; everyone&#39;s in agreement<br/><br/>I strongly disagree with officially discouraging taint and/or removing it<br/>from the default build.<br/><br/>-- <br/>Wesley Crusher gets beaten up by his classmates for being a smarmy git,<br/>and consequently has a go at making some friends of his own age for a<br/>change.<br/> -- Things That Never Happen in &quot;Star Trek&quot; #18<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256224.html Tue, 17 Sep 2019 09:13:37 +0000 make Config{d_libname_unique} = true for windows by Ivan Baidakou Hello,<br/><br/>In strawberry perl mail list I was adviced to suggest to make <br/><br/>Config{d_libname_unique} = true<br/><br/>by default on Windows [1].<br/><br/>The problem (on windows):<br/><br/> when a B.dll is linked with other A.dll (1)<br/>and the dll with exactly the same name was loaded before (A.dll(2)), <br/>then on loading B.dll fails (as it tries to resolve symbols for B.dll <br/>on behalf of A.dll(2)). <br/><br/>I created an sample CMake-based project to demonstrate an issue<br/>(I used boost to load dlls) [2]. See the sample output [3].<br/><br/>1. If it loads A.dll(1) (which is dependency of B.dll), then another A.dll(2)<br/>, then B.dll- all OK. B.dll symbols are resolved/linked correctly<br/><br/>2. If it loads other A.dll(2), then another A.dll(1), and then B.dll, it <br/>crashes.<br/><br/>3. If A.dll(1) will be renamed to whatever, i.e. A2.dll, then <br/>A.dll, A2.dll, B.dll are loded correctly and all is OK.<br/><br/><br/>We have met exactly the same issue on strawberry perl, because <br/>of sharing the same dll base name:<br/>1. There is a module next::xs (xs.dll)<br/>2. There is a module XS::Framework (framework.dll, which is linked to<br/>next::xs)<br/>3. There is a module Export::XS (xs.dll, again)<br/>4. There is a module Time::XS (xs.dll), which is binary linked with<br/>XS::Framework and Export::XS, and Windows fails to load it. <br/><br/>Having unique base names will solve the problem. <br/><br/><br/>[1] https://www.mail-archive.com/win32-vanilla@perl.org/msg00703.html<br/><br/>[2] https://github.com/basiliscos/cpp-so-problem<br/><br/>[3] https://i.imgur.com/yVsyNHR.png<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256223.html Tue, 17 Sep 2019 04:58:09 +0000 Re: [perl #134212] Failed making perl5 at lib/buildcustomize.pl by Tony Cook On Mon, Sep 16, 2019 at 01:37:00PM -0700, Karl Williamson via RT wrote:<br/>&gt; On Sun, 15 Sep 2019 23:53:04 -0700, tonyc wrote:<br/>&gt; &gt; On Sun, 23 Jun 2019 18:19:35 -0700, tonyc wrote:<br/>&gt; &gt; &gt; Is there any chance you can get valgrind on the VM?<br/>&gt; &gt; <br/>&gt; &gt; While this would still be useful, I have a suspicion of the cause.<br/>&gt; &gt; <br/>&gt; &gt; READ of size 2 at 0x6020000006b0 thread T0<br/>&gt; &gt; #0 0x45c608 in __interceptor_setlocale<br/>&gt; &gt; /scratch/llvm/clang-4/xenial/final/llvm.src/projects/compiler-<br/>&gt; &gt; rt/lib/asa<br/>&gt; &gt; n/../sanitizer_common/sanitizer_common_interceptors.inc:2875:5<br/>&gt; &gt; #1 0x887905 in Perl_upg_version /root/Fuzz/perl/./vutil.c:717:17<br/>&gt; &gt; #2 0x8853ed in Perl_new_version /root/Fuzz/perl/./vutil.c:551:12<br/>&gt; &gt; #3 0xb31ee3 in S_require_version /root/Fuzz/perl/pp_ctl.c:3719:10<br/>&gt; &gt; #4 0xb31ee3 in Perl_pp_require /root/Fuzz/perl/pp_ctl.c:4345<br/>&gt; &gt; #5 0x863dbc in Perl_runops_debug /root/Fuzz/perl/dump.c:2537:23<br/>&gt; &gt; #6 0x5d0f4c in Perl_call_sv /root/Fuzz/perl/perl.c:3043:6<br/>&gt; &gt; #7 0x5bbc7d in Perl_call_list /root/Fuzz/perl/perl.c:5077:6<br/>&gt; &gt; #8 0x56962e in S_process_special_blocks<br/>&gt; &gt; /root/Fuzz/perl/op.c:10469:6<br/>&gt; &gt; #9 0x539626 in Perl_newATTRSUB_x /root/Fuzz/perl/op.c:10395:21<br/>&gt; &gt; #10 0x541522 in Perl_utilize /root/Fuzz/perl/op.c:7590:5<br/>&gt; &gt; #11 0x6dfaa0 in Perl_yyparse /root/Fuzz/perl/perly.y:336:6<br/>&gt; &gt; #12 0x5c88c4 in S_parse_body /root/Fuzz/perl/perl.c:2531:9<br/>&gt; &gt; #13 0x5bf965 in perl_parse /root/Fuzz/perl/perl.c:1822:2<br/>&gt; &gt; #14 0xde129c in main /root/Fuzz/perl/miniperlmain.c:132:10<br/>&gt; &gt; #15 0x7f21e137a82f in __libc_start_main<br/>&gt; &gt; (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)<br/>&gt; &gt; #16 0x41c358 in _start (/root/Fuzz/perl/miniperl+0x41c358)<br/>&gt; &gt; <br/>&gt; &gt; Here&#39;s the code in question (minus the irrelevant code):<br/>&gt; &gt; <br/>&gt; &gt; <br/>&gt; &gt; const char * locale_name_on_entry;<br/>&gt; &gt; <br/>&gt; &gt; LC_NUMERIC_LOCK(0); /* Start critical section */<br/>&gt; &gt; <br/>&gt; &gt; locale_name_on_entry = setlocale(LC_NUMERIC, NULL); &lt;-- get current<br/>&gt; &gt; locale name (possibly malloced())<br/>&gt; &gt; if ( strNE(locale_name_on_entry, &quot;C&quot;)<br/>&gt; &gt; &amp;&amp; strNE(locale_name_on_entry, &quot;POSIX&quot;))<br/>&gt; &gt; {<br/>&gt; &gt; setlocale(LC_NUMERIC, &quot;C&quot;); &lt;-- change locale, possibly freeing<br/>&gt; &gt; locale_name_on_entry<br/>&gt; &gt; }<br/>&gt; &gt; else { /* This value indicates to the restore code that we didn&#39;t<br/>&gt; &gt; change the locale */<br/>&gt; &gt; locale_name_on_entry = NULL;<br/>&gt; &gt; }<br/>&gt; &gt; <br/>&gt; &gt; ...<br/>&gt; &gt; <br/>&gt; &gt; <br/>&gt; &gt; if (locale_name_on_entry) {<br/>&gt; &gt; setlocale(LC_NUMERIC, locale_name_on_entry); &lt;-- use freed value<br/>&gt; &gt; }<br/>&gt; &gt; <br/>&gt; &gt; The lifetime of the string returned by setlocale() isn&#39;t well<br/>&gt; &gt; documented, but it is documented that it *may* be return a pointer to<br/>&gt; &gt; static storage, in which case the setlocale(LC_NUMERIC, &quot;C&quot;) may<br/>&gt; &gt; overwrite it, making the value useless for restoring the locale.<br/>&gt; &gt; <br/>&gt; &gt; The attached should fix it.<br/>&gt; &gt; <br/>&gt; &gt; #134182 (which I found after checking the version.pm PRs) has an<br/>&gt; &gt; incomplete patch for this.<br/>&gt; &gt; <br/>&gt; &gt; Tony<br/>&gt; <br/>&gt; Why not just do a saave the first time? It would be less code that could get out of sync. When it is unclear what is going to happen in the interim, locale.c makes it a SAVEFREEPV<br/><br/>I had a WIP that used SAVEFREEPV(), but in this case we have an<br/>obvious place to do the free(), and while SAVEFREEPV() isn&#39;t expensive<br/>(most of the cost is fixed in the LEAVE itself) it isn&#39;t free either.<br/><br/>Or did I misunderstand what you&#39;re asking here?<br/><br/>Tony<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256222.html Tue, 17 Sep 2019 01:23:35 +0000 [perl #134212] Failed making perl5 at lib/buildcustomize.pl by Karl Williamson via RT On Sun, 15 Sep 2019 23:53:04 -0700, tonyc wrote:<br/>&gt; On Sun, 23 Jun 2019 18:19:35 -0700, tonyc wrote:<br/>&gt; &gt; Is there any chance you can get valgrind on the VM?<br/>&gt; <br/>&gt; While this would still be useful, I have a suspicion of the cause.<br/>&gt; <br/>&gt; READ of size 2 at 0x6020000006b0 thread T0<br/>&gt; #0 0x45c608 in __interceptor_setlocale<br/>&gt; /scratch/llvm/clang-4/xenial/final/llvm.src/projects/compiler-<br/>&gt; rt/lib/asa<br/>&gt; n/../sanitizer_common/sanitizer_common_interceptors.inc:2875:5<br/>&gt; #1 0x887905 in Perl_upg_version /root/Fuzz/perl/./vutil.c:717:17<br/>&gt; #2 0x8853ed in Perl_new_version /root/Fuzz/perl/./vutil.c:551:12<br/>&gt; #3 0xb31ee3 in S_require_version /root/Fuzz/perl/pp_ctl.c:3719:10<br/>&gt; #4 0xb31ee3 in Perl_pp_require /root/Fuzz/perl/pp_ctl.c:4345<br/>&gt; #5 0x863dbc in Perl_runops_debug /root/Fuzz/perl/dump.c:2537:23<br/>&gt; #6 0x5d0f4c in Perl_call_sv /root/Fuzz/perl/perl.c:3043:6<br/>&gt; #7 0x5bbc7d in Perl_call_list /root/Fuzz/perl/perl.c:5077:6<br/>&gt; #8 0x56962e in S_process_special_blocks<br/>&gt; /root/Fuzz/perl/op.c:10469:6<br/>&gt; #9 0x539626 in Perl_newATTRSUB_x /root/Fuzz/perl/op.c:10395:21<br/>&gt; #10 0x541522 in Perl_utilize /root/Fuzz/perl/op.c:7590:5<br/>&gt; #11 0x6dfaa0 in Perl_yyparse /root/Fuzz/perl/perly.y:336:6<br/>&gt; #12 0x5c88c4 in S_parse_body /root/Fuzz/perl/perl.c:2531:9<br/>&gt; #13 0x5bf965 in perl_parse /root/Fuzz/perl/perl.c:1822:2<br/>&gt; #14 0xde129c in main /root/Fuzz/perl/miniperlmain.c:132:10<br/>&gt; #15 0x7f21e137a82f in __libc_start_main<br/>&gt; (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)<br/>&gt; #16 0x41c358 in _start (/root/Fuzz/perl/miniperl+0x41c358)<br/>&gt; <br/>&gt; Here&#39;s the code in question (minus the irrelevant code):<br/>&gt; <br/>&gt; <br/>&gt; const char * locale_name_on_entry;<br/>&gt; <br/>&gt; LC_NUMERIC_LOCK(0); /* Start critical section */<br/>&gt; <br/>&gt; locale_name_on_entry = setlocale(LC_NUMERIC, NULL); &lt;-- get current<br/>&gt; locale name (possibly malloced())<br/>&gt; if ( strNE(locale_name_on_entry, &quot;C&quot;)<br/>&gt; &amp;&amp; strNE(locale_name_on_entry, &quot;POSIX&quot;))<br/>&gt; {<br/>&gt; setlocale(LC_NUMERIC, &quot;C&quot;); &lt;-- change locale, possibly freeing<br/>&gt; locale_name_on_entry<br/>&gt; }<br/>&gt; else { /* This value indicates to the restore code that we didn&#39;t<br/>&gt; change the locale */<br/>&gt; locale_name_on_entry = NULL;<br/>&gt; }<br/>&gt; <br/>&gt; ...<br/>&gt; <br/>&gt; <br/>&gt; if (locale_name_on_entry) {<br/>&gt; setlocale(LC_NUMERIC, locale_name_on_entry); &lt;-- use freed value<br/>&gt; }<br/>&gt; <br/>&gt; The lifetime of the string returned by setlocale() isn&#39;t well<br/>&gt; documented, but it is documented that it *may* be return a pointer to<br/>&gt; static storage, in which case the setlocale(LC_NUMERIC, &quot;C&quot;) may<br/>&gt; overwrite it, making the value useless for restoring the locale.<br/>&gt; <br/>&gt; The attached should fix it.<br/>&gt; <br/>&gt; #134182 (which I found after checking the version.pm PRs) has an<br/>&gt; incomplete patch for this.<br/>&gt; <br/>&gt; Tony<br/><br/>Why not just do a saave the first time? It would be less code that could get out of sync. When it is unclear what is going to happen in the interim, locale.c makes it a SAVEFREEPV<br/>-- <br/>Karl Williamson<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=134212<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256221.html Mon, 16 Sep 2019 20:37:14 +0000 Re: Formal Request - Discourage Taint by Chase Whitener We aren&#39;t really removing Taint mode at this moment, just formally<br/>discouraging it. Does the step of not compiling with Taint mode by<br/>default cause concern and alter the narrative from &quot;discouraged&quot; to<br/>&quot;deprecated&quot;? If so, we could break this up into a phased approach and<br/>tackle that problem later. I&#39;m all for immediate deprecation, but that<br/>may be too much too soon.<br/><br/>Simple things first:<br/>1: Adjust all documentation to explain it. (perlsec, File-Temp,<br/>perlfaq7, Test-Harness, File-Find, perlfunc, perlguts, perllocale,<br/>perlrun, etc.).<br/>2: Announce the change in mindset wrt Taint far and wide via blog<br/>posts, conference talks, etc.<br/><br/>I&#39;m not sure who decides when a consensus has been reached, but if<br/>everyone&#39;s in agreement, we will need to scour the docs and make the<br/>appropriate changes. This can begin with a list of all of the places<br/>that Taint is mentioned in the docs. I&#39;ll be happy to begin work on<br/>that as I&#39;m sure others would be also. Those who are more polished<br/>writers should work up blog posts though I&#39;ll be happy to start that<br/>as well.<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256220.html Mon, 16 Sep 2019 16:01:15 +0000 Perl5 Bug Summary by Perl5 Bug Summary Perl5 Bug Summary<br/><br/>http://rt.perl.org/NoAuth/perl5/Overview.html<br/>Generated at Mon Sep 16 15:17:01 2019 GMT<br/>-------------------------------------------------------------------------------<br/><br/> * Numbers<br/> * New Issues<br/> * Overview of Open Issues<br/> * Ticket Status By Version<br/> * Requestors with most open tickets<br/><br/>-------------------------------------------------------------------------------<br/><br/>Numbers<br/><br/>Ticket Counts: 180 new + 1717 open = 1897<br/>Created this week: 4<br/>Closed this week: 3<br/>Changed this week: 15 - created - closed = 8<br/><br/>-------------------------------------------------------------------------------<br/><br/>New Issues<br/><br/>New issues that have not been responded to yet<br/><br/>1 - 2 weeks old<br/>134411 Clarify documentation<br/>2 - 3 weeks old<br/>3 - 4 weeks old<br/>4 - 5 weeks old<br/>5 - 6 weeks old<br/>6 - 7 weeks old<br/>7 - 8 weeks old<br/>134304 &quot;splice&quot; and &quot;shift&quot; aren&#39;t strictly equivalent<br/>8 - 9 weeks old<br/>9 - 10 weeks old<br/>10 - 11 weeks old<br/>134253 [PATCH] perlbug: support -x XFER_METHOD to use Net::SMTP<br/>11 - 12 weeks old<br/>134244 Regex *THEN not (as per doc) same as *PRUNE at top level<br/>134237 A Metaconfig probe for malloc_usable_size<br/>134235 MacOS X intermittent threads/t/blocks.t failure<br/>134228 MacOS X intermittent threads/t/free2.t failure<br/>12 - 13 weeks old<br/>13 - 14 weeks old<br/>14 - 15 weeks old<br/>134183 Suggestion for &quot;use&quot;/&quot;no&quot; in expression errors<br/>15 - 16 weeks old<br/>134150 use re &#39;debug&#39; ignored for uniprop embedded regexps<br/>16 - 17 weeks old<br/>134142 Adjust macros dealing with UTF-8 to require extra parameter<br/>134129 New compilation warnings with gcc 8.3.0<br/>17 - 18 weeks old<br/>134118 Update README.android to mention native builds with Termux<br/>18 - 19 weeks old<br/>134096 fix perf deficit in File::Stat (patch against 5.26.2)<br/>19 - 20 weeks old<br/>134083 Assertion failure in S_regmatch (regexec.c: 6493)<br/>20 - 21 weeks old<br/>134065 Assertion failure in Perl_pp_leave (pp_ctl.c:2121)<br/><br/>-------------------------------------------------------------------------------<br/><br/>Overview of Open Issues<br/><br/>Operating System Severity Type Perl Version<br/><br/>aix 5 High 102 3Dlibrary 1 5.000 1<br/><br/>All 121 low 1244 BBC 11 5.004 1<br/><br/>cygwin 21 medium 313 compiler 3 5.004_00 1<br/><br/>darwin 76 none 4 configure 20 5.004_01 1<br/><br/>dec_osf 1 Normal 1 core 839 5.004_02 1<br/><br/>dos 1 unknown 1 CoreDump 35 5.004_03 1<br/><br/>freebsd 23 Wishlist 106 dailybuild 1 5.004_04 1<br/><br/>generic 5 debugger 11 5.004_05 1<br/><br/>gnu 1 docs 48 5.005 1<br/><br/>HPUX 6 HasTest 17 5.005_01 1<br/><br/>irix 2 install 36 5.005_02 1<br/><br/>Linux 533 ithreads 35 5.005_03 4<br/><br/>mswin32 104 leak/refcount/malloc 23 5.005_04 2<br/><br/>netbsd 5 lexical/scope/closure 17 5.6.0 21<br/><br/>openbsd 10 library 216 5.6.1 17<br/><br/>os2 5 locale 1 5.6.2 3<br/><br/>other 2 meta 22 5.7.0 2<br/><br/>Solaris 19 NeedsTest 9 5.7.1 2<br/><br/>sunos 1 notabug 7 5.7.2 4<br/><br/>svr4 1 numerical 16 5.8.0 37<br/><br/>unknown 1 OO/ISA/MRO/overload 5 5.8.1 10<br/><br/>vms 3 OS-interaction 54 5.8.2 11<br/><br/>Win32 46 parsing 14 5.8.3 12<br/><br/> Patch 46 5.8.4 18<br/><br/> performance 6 5.8.5 8<br/><br/> PerlIO 48 5.8.6 14<br/><br/> portability 43 5.8.7 16<br/><br/> regex 36 5.8.8 57<br/><br/> security/tainting 4 5.8.9 6<br/><br/> sendToCPAN 3 5.9.0 6<br/><br/> tie 4 5.9.1 4<br/><br/> Todo 2 5.9.2 4<br/><br/> Unicode 24 5.9.3 4<br/><br/> unknown 574 5.9.4 4<br/><br/> utilities 37 5.9.5 8<br/><br/> wontfix 1 5.10.0 71<br/><br/> XS/embedding 11 5.10.1 47<br/><br/> [overload] 5.11.0 10<br/><br/> 5.11.1 3<br/><br/> 5.11.2 1<br/><br/> 5.11.3 3<br/><br/> 5.11.4 2<br/><br/> 5.11.5 2<br/><br/> 5.12.0 6<br/><br/> 5.12.1 9<br/><br/> 5.12.2 9<br/><br/> 5.12.3 7<br/><br/> 5.12.4 9<br/><br/> 5.12.5 1<br/><br/> 5.12.6 1<br/><br/> 5.13.0 3<br/><br/> 5.13.1 3<br/><br/> 5.13.2 3<br/><br/> 5.13.3 3<br/><br/> 5.13.4 3<br/><br/> 5.13.5 4<br/><br/> 5.13.6 4<br/><br/> 5.13.7 1<br/><br/> 5.13.8 1<br/><br/> 5.13.9 6<br/><br/> 5.13.10 1<br/><br/> 5.13.11 1<br/><br/> 5.14.0 18<br/><br/> 5.14.1 3<br/><br/> 5.14.2 47<br/><br/> 5.14.3 5<br/><br/> 5.14.4 3<br/><br/> 5.14.5 1<br/><br/> 5.15.0 3<br/><br/> 5.15.1 1<br/><br/> 5.15.2 2<br/><br/> 5.15.3 4<br/><br/> 5.15.4 2<br/><br/> 5.15.5 11<br/><br/> 5.15.6 7<br/><br/> 5.15.7 2<br/><br/> 5.15.8 3<br/><br/> 5.15.9 3<br/><br/> 5.15.10 1<br/><br/> 5.16.0 22<br/><br/> 5.16.1 6<br/><br/> 5.16.2 14<br/><br/> 5.16.3 23<br/><br/> 5.16.4 1<br/><br/> 5.17.0 3<br/><br/> 5.17.1 2<br/><br/> 5.17.2 3<br/><br/> 5.17.3 2<br/><br/> 5.17.4 3<br/><br/> 5.17.5 3<br/><br/> 5.17.6 4<br/><br/> 5.17.7 6<br/><br/> 5.17.8 3<br/><br/> 5.17.9 3<br/><br/> 5.17.10 3<br/><br/> 5.17.11 2<br/><br/> 5.17.12 2<br/><br/> 5.18.0 7<br/><br/> 5.18.1 18<br/><br/> 5.18.2 24<br/><br/> 5.18.4 11<br/><br/> 5.19.0 1<br/><br/> 5.19.1 4<br/><br/> 5.19.2 2<br/><br/> 5.19.3 3<br/><br/> 5.19.4 14<br/><br/> 5.19.5 1<br/><br/> 5.19.6 1<br/><br/> 5.19.7 3<br/><br/> 5.19.8 2<br/><br/> 5.19.9 7<br/><br/> 5.19.10 4<br/><br/> 5.19.11 5<br/><br/> 5.20.0 5<br/><br/> 5.20.1 13<br/><br/> 5.20.2 13<br/><br/> 5.20.3 3<br/><br/> 5.21.1 2<br/><br/> 5.21.2 3<br/><br/> 5.21.3 1<br/><br/> 5.21.4 7<br/><br/> 5.21.5 3<br/><br/> 5.21.6 3<br/><br/> 5.21.7 5<br/><br/> 5.21.9 1<br/><br/> 5.21.11 1<br/><br/> 5.22.0 16<br/><br/> 5.22.1 23<br/><br/> 5.22.2 21<br/><br/> 5.23.0 6<br/><br/> 5.23.1 1<br/><br/> 5.23.2 4<br/><br/> 5.23.3 3<br/><br/> 5.23.5 3<br/><br/> 5.23.9 1<br/><br/> 5.24.0 32<br/><br/> 5.24.1 21<br/><br/> 5.24.3 1<br/><br/> 5.24.4 1<br/><br/> 5.25.1 3<br/><br/> 5.25.2 36<br/><br/> 5.25.3 11<br/><br/> 5.25.4 5<br/><br/> 5.25.5 4<br/><br/> 5.25.6 1<br/><br/> 5.25.7 1<br/><br/> 5.25.9 7<br/><br/> 5.25.10 5<br/><br/> 5.25.11 2<br/><br/> 5.26.0 22<br/><br/> 5.26.1 18<br/><br/> 5.26.2 16<br/><br/> 5.27.1 11<br/><br/> 5.27.2 6<br/><br/> 5.27.3 2<br/><br/> 5.27.4 1<br/><br/> 5.27.5 9<br/><br/> 5.27.6 12<br/><br/> 5.27.7 4<br/><br/> 5.27.8 1<br/><br/> 5.27.9 12<br/><br/> 5.27.10 2<br/><br/> 5.27.11 1<br/><br/> 5.28.0 14<br/><br/> 5.28.1 12<br/><br/> 5.29.0 1<br/><br/> 5.29.1 1<br/><br/> 5.29.3 1<br/><br/> 5.29.6 1<br/><br/> 5.29.7 1<br/><br/> 5.29.9 28<br/><br/> 5.29.10 3<br/><br/> 5.30.0 6<br/><br/> 5.31.0 3<br/><br/> 5.31.1 5<br/><br/> 5.31.2 5<br/><br/> 5.31.3 1<br/><br/> 5.31.4 3<br/>-------------------------------------------------------------------------------<br/><br/>Ticket Status By Version<br/><br/> New or Open Resolved<br/><br/>1.0 0 23<br/><br/>5.000 1 9<br/><br/>5.002 0 10<br/><br/>5.003 0 11<br/><br/>5.004 1 13<br/><br/>5.004_00 1 8<br/><br/>5.004_01 1 10<br/><br/>5.004_02 1 8<br/><br/>5.004_03 1 8<br/><br/>5.004_04 1 51<br/><br/>5.004_05 1 13<br/><br/>5.005 1 34<br/><br/>5.005_01 1 12<br/><br/>5.005_02 1 88<br/><br/>5.005_03 4 368<br/><br/>5.005_04 2 11<br/><br/>5.6.0 21 1108<br/><br/>5.6.1 17 624<br/><br/>5.6.2 3 21<br/><br/>5.7.0 2 1488<br/><br/>5.7.1 2 58<br/><br/>5.7.2 4 107<br/><br/>5.8.0 37 638<br/><br/>5.8.1 10 125<br/><br/>5.8.2 11 94<br/><br/>5.8.3 12 125<br/><br/>5.8.4 18 158<br/><br/>5.8.5 8 91<br/><br/>5.8.6 14 91<br/><br/>5.8.7 16 116<br/><br/>5.8.8 57 330<br/><br/>5.8.9 6 35<br/><br/>5.9.0 6 66<br/><br/>5.9.1 4 28<br/><br/>5.9.2 4 38<br/><br/>5.9.3 4 53<br/><br/>5.9.4 4 40<br/><br/>5.9.5 8 45<br/><br/>5.0.1 0 2<br/><br/>5.10.0 71 295<br/><br/>5.10.1 47 147<br/><br/>5.11.0 10 52<br/><br/>5.11.1 3 15<br/><br/>5.11.2 1 18<br/><br/>5.11.3 3 23<br/><br/>5.11.4 2 22<br/><br/>5.11.5 2 18<br/><br/>5.12.0 6 49<br/><br/>5.12.1 9 19<br/><br/>5.12.2 9 50<br/><br/>5.12.3 7 31<br/><br/>5.12.4 9 39<br/><br/>5.12.5 1 6<br/><br/>5.12.6 1 4<br/><br/>5.13.0 3 7<br/><br/>5.13.1 3 10<br/><br/>5.13.2 3 7<br/><br/>5.13.3 3 16<br/><br/>5.13.4 3 20<br/><br/>5.13.5 4 12<br/><br/>5.13.6 4 11<br/><br/>5.13.7 1 11<br/><br/>5.13.8 1 22<br/><br/>5.13.9 6 15<br/><br/>5.13.10 1 18<br/><br/>5.13.11 1 11<br/><br/>5.14.0 18 68<br/><br/>5.14.1 3 26<br/><br/>5.14.2 47 113<br/><br/>5.14.3 5 12<br/><br/>5.14.4 3 15<br/><br/>5.14.5 1 4<br/><br/>5.15.0 3 18<br/><br/>5.15.1 1 32<br/><br/>5.15.2 2 24<br/><br/>5.15.3 4 10<br/><br/>5.15.4 2 13<br/><br/>5.15.5 11 14<br/><br/>5.15.6 7 13<br/><br/>5.15.7 2 26<br/><br/>5.15.8 3 14<br/><br/>5.15.9 3 22<br/><br/>5.15.10 1 4<br/><br/>5.16.0 22 62<br/><br/>5.16.1 6 23<br/><br/>5.16.2 14 33<br/><br/>5.16.3 23 29<br/><br/>5.16.4 1 5<br/><br/>5.17.0 3 16<br/><br/>5.17.1 2 13<br/><br/>5.17.2 3 22<br/><br/>5.17.3 2 14<br/><br/>5.17.4 3 13<br/><br/>5.17.5 3 22<br/><br/>5.17.6 4 14<br/><br/>5.17.7 6 17<br/><br/>5.17.8 3 9<br/><br/>5.17.9 3 15<br/><br/>5.17.10 3 13<br/><br/>5.17.11 2 9<br/><br/>5.17.12 2 6<br/><br/>5.18.0 7 42<br/><br/>5.18.1 18 30<br/><br/>5.18.2 24 38<br/><br/>5.18.3 0 2<br/><br/>5.18.4 11 5<br/><br/>5.18.5 0 2<br/><br/>5.19.0 1 7<br/><br/>5.19.1 4 13<br/><br/>5.19.2 2 11<br/><br/>5.19.3 3 11<br/><br/>5.19.4 14 22<br/><br/>5.19.5 1 8<br/><br/>5.19.6 1 6<br/><br/>5.19.7 3 18<br/><br/>5.19.8 2 12<br/><br/>5.19.9 7 14<br/><br/>5.19.10 4 14<br/><br/>5.19.11 5 9<br/><br/>5.20.0 5 28<br/><br/>5.20.1 13 39<br/><br/>5.20.2 13 33<br/><br/>5.20.3 3 12<br/><br/>5.21.0 0 5<br/><br/>5.21.1 2 18<br/><br/>5.21.2 3 14<br/><br/>5.21.3 1 7<br/><br/>5.21.4 7 62<br/><br/>5.21.5 3 8<br/><br/>5.21.6 3 8<br/><br/>5.21.7 5 38<br/><br/>5.21.8 0 12<br/><br/>5.21.9 1 11<br/><br/>5.21.10 0 6<br/><br/>5.21.11 1 7<br/><br/>5.22.0 16 24<br/><br/>5.22.1 23 30<br/><br/>5.22.2 21 8<br/><br/>5.22.3 0 2<br/><br/>5.22.4 0 2<br/><br/>5.23.0 6 17<br/><br/>5.23.1 1 6<br/><br/>5.23.2 4 7<br/><br/>5.23.3 3 9<br/><br/>5.23.4 0 23<br/><br/>5.23.5 3 17<br/><br/>5.23.6 0 5<br/><br/>5.23.7 0 4<br/><br/>5.23.8 0 5<br/><br/>5.23.9 1 6<br/><br/>5.24.0 32 64<br/><br/>5.24.1 21 32<br/><br/>5.24.2 0 5<br/><br/>5.24.3 1 5<br/><br/>5.24.4 1 3<br/><br/>5.25.0 0 2<br/><br/>5.25.1 3 3<br/><br/>5.25.2 36 12<br/><br/>5.25.3 11 10<br/><br/>5.25.4 5 14<br/><br/>5.25.5 4 8<br/><br/>5.25.6 1 6<br/><br/>5.25.7 1 9<br/><br/>5.25.8 0 4<br/><br/>5.25.9 7 14<br/><br/>5.25.10 5 4<br/><br/>5.25.11 2 5<br/><br/>5.25.12 0 4<br/><br/>5.25.13 0 3<br/><br/>5.26.0 22 28<br/><br/>5.26.1 18 10<br/><br/>5.26.2 16 8<br/><br/>5.26.3 0 1<br/><br/>5.27.0 0 2<br/><br/>5.27.1 11 7<br/><br/>5.27.2 6 4<br/><br/>5.27.3 2 5<br/><br/>5.27.4 1 5<br/><br/>5.27.5 9 5<br/><br/>5.27.6 12 11<br/><br/>5.27.7 4 15<br/><br/>5.27.8 1 9<br/><br/>5.27.9 12 36<br/><br/>5.27.10 2 1<br/><br/>5.27.11 1 3<br/><br/>5.27.12 0 1<br/><br/>5.28.0 14 8<br/><br/>5.28.1 12 2<br/><br/>5.28.2 0 1<br/><br/>5.29.0 1 6<br/><br/>5.29.1 1 2<br/><br/>5.29.2 0 2<br/><br/>5.29.3 1 1<br/><br/>5.29.4 0 4<br/><br/>5.29.5 0 1<br/><br/>5.29.6 1 3<br/><br/>5.29.7 1 1<br/><br/>5.29.8 0 6<br/><br/>5.29.9 28 27<br/><br/>5.29.10 3 4<br/><br/>5.29.11 0 2<br/><br/>5.30.0 6 2<br/><br/>5.31.0 3 0<br/><br/>5.31.1 5 0<br/><br/>5.31.2 5 2<br/><br/>5.31.3 1 0<br/><br/>5.31.4 3 0<br/><br/>-------------------------------------------------------------------------------<br/><br/>Requestors with most open tickets<br/><br/>Zefram 68<br/>Sergey Aleynikov 63<br/>bulk88 55<br/>Father Chrysostomos 51<br/>Nicholas Clark 46<br/>Brian Carpenter 46<br/>&quot;Ed Avis&quot; 41<br/>l.mai@web.de 39<br/>James E Keenan 25<br/>KES 25<br/><br/>-------------------------------------------------------------------------------<br/><br/> * Numbers<br/> * New Issues<br/> * Overview of Open Issues<br/> * Ticket Status By Version<br/> * Requestors with most open tickets<br/><br/>-------------------------------------------------------------------------------<br/>This page is CPU intensive to create, it will be updated only once every 30<br/>minutes<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256219.html Mon, 16 Sep 2019 15:17:14 +0000 ext/XS-APItest/t/handy*.t does not complete properly in certainenvironments by James E Keenan In one of the VMs I use for smoke-testing blead, the <br/>ext/XS-APItest/t/handy*.t tests FAIL regardless of how I set TEST_JOBS. <br/>See, e.g., http://perl5.test-smoke.org/report/94944.<br/><br/>Since the VMs I use are mainly &quot;off the shelf&quot;, I generally set &#39;export <br/>TEST_JOBS=2&#39; before launching a smoke testing run. That was the case <br/>with the run above. When I saw the failure reported in 94944, I went to <br/>the perl-current directory and re-ran the tests manually, at first <br/>without changing $TEST_JOBS. Again I got failures. I then said &#39;export <br/>TEST_JOBS=1&#39; and tested manually. Results:<br/><br/>#####<br/>$ echo $TEST_JOBS<br/>1<br/>$ cd t;./perl harness -v ../ext/XS-APItest/t/handy*.t; cd -<br/>...<br/>ok 186779 - This subsequent call to isXDIGIT_LC_utf8 did not warn<br/>ok 186780 - Got no unexpected warnings in previous iteration<br/>Killed<br/>#####<br/><br/>I next moved out of the directory tree I use for smoke-testing <br/>(~/p5smoke) to the tree I use for my git checkout of core <br/>(~/gitwork/perl). I built blead and then -- while still having <br/>TEST_JOBS set to 1 -- I ran the &#39;harness&#39; command above. This time, <br/>handy00.t sailed right past test 186780 and appeared to complete all <br/>tests -- yet is still was graded FAIL.<br/><br/>#####<br/>$ $ echo $TEST_JOBS<br/>1<br/>$ cd t;./perl harness -v ../ext/XS-APItest/t/handy*.t; cd -<br/>...<br/>ok 192207 - isXDIGIT_LC_uvchr( \x{A7, SECTION SIGN} ) (C locale) didn&#39;t <br/>give error<br/>ok 192208 - And correctly returns 0<br/>All 192208 subtests passed<br/>../ext/XS-APItest/t/handy01.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy02.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy03.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy04.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy05.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy06.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy07.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy08.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/>../ext/XS-APItest/t/handy09.t ..<br/>ok 1 - No unexpected warnings were generated in the tests<br/>1..1<br/>ok<br/><br/>Test Summary Report<br/>-------------------<br/>../ext/XS-APItest/t/handy00.t (Wstat: 9 Tests: 192208 Failed: 0)<br/> Non-zero wait status: 9<br/> Parse errors: No plan found in TAP output<br/>Files=10, Tests=192217, 79 wallclock secs (10.44 usr 11.66 sys + 46.68 <br/>cusr 17.17 csys = 85.95 CPU)<br/>Result: FAIL<br/>/home/jkeenan/gitwork/perl<br/>#####<br/><br/>Can anyone identify what is going wrong?<br/><br/>Thank you very much.<br/>Jim Keenan<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256218.html Mon, 16 Sep 2019 14:19:37 +0000 Rethinking PERL_xxx env vars. by demerphq I recently encountered an annoyance with perl env vars, where setting one <br/>of the vars for development purposes broke git, which uses perl for its <br/>tooling. <br/> <br/>I then did some digging and determined that there is no way to tell perl <br/>&quot;ignore the environment&#39;, nor is there a way to have per application <br/>settings without using a wrapper of some form to clean the env. <br/> <br/>I think this is suboptimal. <br/> <br/>So I was thinking we should have a facility that a) causes perl to ignore <br/>the environment[1], and b) that allows one to specify a prefix to use when <br/>reading env vars. Thus git could set the prefix to GIT_ which would mean <br/>perl would read GIT_PERL5LIB etc. <br/> <br/>I am not entirely certain how this would work, perhaps an option on the <br/>shebang line. Ideas welcome. <br/> <br/>Yves <br/>[1] despite the temptation we probably shouldn&#39;t name this after any of the <br/>many political movements that also ignore the environment. &eth;&#159;&#152;&#129; <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256217.html Mon, 16 Sep 2019 09:24:29 +0000 [perl #134182] Fix test failure in POSIX/t/mb.t with semi-brokenlocales by Tony Cook via RT On Mon, 17 Jun 2019 09:21:04 -0700, ntyni@debian.org wrote:<br/>&gt; On Mon, Jun 17, 2019 at 02:49:43PM +0300, Niko Tyni wrote:<br/>&gt; &gt; On Mon, Jun 17, 2019 at 09:47:04AM +0300, Niko Tyni wrote:<br/>&gt; &gt; <br/>&gt; &gt; &gt; I can reproduce it on 5.30.0. It seems to be related to version strings<br/>&gt; &gt; &gt; and LC_NUMERIC. I reduced it to this:<br/>&gt; &gt; &gt; <br/>&gt; &gt; &gt; $ LC_NUMERIC=C.UTF-8 ./perl -l -Ilib -e &#39;require 5.006;&#39;<br/>&gt; &gt; <br/>&gt; &gt; And further to this. It&#39;s not clear to me if this is a problem with asan<br/>&gt; &gt; or the code.<br/>&gt; &gt; <br/>&gt; &gt; $ cat t.c; clang -g -fsanitize=address t.c; ./a.out<br/>&gt; &gt; #include &lt;locale.h&gt;<br/>&gt; &gt; int main(void) {<br/>&gt; &gt; char *l;<br/>&gt; &gt; setlocale(LC_NUMERIC, &quot;C.UTF-8&quot;);<br/>&gt; &gt; l = setlocale(LC_NUMERIC, NULL);<br/>&gt; &gt; setlocale(LC_NUMERIC, &quot;C&quot;);<br/>&gt; &gt; setlocale(LC_NUMERIC, l);<br/>&gt; &gt; }<br/>&gt; <br/>&gt; Presumably the intervening setlocale() call clobbers the buffer<br/>&gt; that l points to.<br/>&gt; <br/>&gt; The attached patch to vutil.c seems to fix this issue for me,<br/>&gt; but eyeballs appreciated of course.<br/><br/>https://rt.perl.org/Ticket/Display.html?id=134212 has a more complete fix (I didn&#39;t see this until I diagnosed it.)<br/><br/>Tony<br/><br/><br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=134182<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256216.html Mon, 16 Sep 2019 06:54:29 +0000 [perl #134212] Failed making perl5 at lib/buildcustomize.pl by Tony Cook via RT On Sun, 23 Jun 2019 18:19:35 -0700, tonyc wrote:<br/>&gt; Is there any chance you can get valgrind on the VM?<br/><br/>While this would still be useful, I have a suspicion of the cause.<br/><br/>READ of size 2 at 0x6020000006b0 thread T0<br/> #0 0x45c608 in __interceptor_setlocale<br/>/scratch/llvm/clang-4/xenial/final/llvm.src/projects/compiler-rt/lib/asa<br/>n/../sanitizer_common/sanitizer_common_interceptors.inc:2875:5<br/> #1 0x887905 in Perl_upg_version /root/Fuzz/perl/./vutil.c:717:17<br/> #2 0x8853ed in Perl_new_version /root/Fuzz/perl/./vutil.c:551:12<br/> #3 0xb31ee3 in S_require_version /root/Fuzz/perl/pp_ctl.c:3719:10<br/> #4 0xb31ee3 in Perl_pp_require /root/Fuzz/perl/pp_ctl.c:4345<br/> #5 0x863dbc in Perl_runops_debug /root/Fuzz/perl/dump.c:2537:23<br/> #6 0x5d0f4c in Perl_call_sv /root/Fuzz/perl/perl.c:3043:6<br/> #7 0x5bbc7d in Perl_call_list /root/Fuzz/perl/perl.c:5077:6<br/> #8 0x56962e in S_process_special_blocks /root/Fuzz/perl/op.c:10469:6<br/> #9 0x539626 in Perl_newATTRSUB_x /root/Fuzz/perl/op.c:10395:21<br/> #10 0x541522 in Perl_utilize /root/Fuzz/perl/op.c:7590:5<br/> #11 0x6dfaa0 in Perl_yyparse /root/Fuzz/perl/perly.y:336:6<br/> #12 0x5c88c4 in S_parse_body /root/Fuzz/perl/perl.c:2531:9<br/> #13 0x5bf965 in perl_parse /root/Fuzz/perl/perl.c:1822:2<br/> #14 0xde129c in main /root/Fuzz/perl/miniperlmain.c:132:10<br/> #15 0x7f21e137a82f in __libc_start_main<br/>(/lib/x86_64-linux-gnu/libc.so.6+0x2082f)<br/> #16 0x41c358 in _start (/root/Fuzz/perl/miniperl+0x41c358)<br/><br/>Here&#39;s the code in question (minus the irrelevant code):<br/><br/><br/> const char * locale_name_on_entry;<br/><br/> LC_NUMERIC_LOCK(0); /* Start critical section */<br/><br/> locale_name_on_entry = setlocale(LC_NUMERIC, NULL); &lt;-- get current locale name (possibly malloced())<br/> if ( strNE(locale_name_on_entry, &quot;C&quot;)<br/> &amp;&amp; strNE(locale_name_on_entry, &quot;POSIX&quot;))<br/> {<br/> setlocale(LC_NUMERIC, &quot;C&quot;); &lt;-- change locale, possibly freeing locale_name_on_entry<br/> }<br/> else { /* This value indicates to the restore code that we didn&#39;t<br/> change the locale */<br/> locale_name_on_entry = NULL;<br/> }<br/><br/>...<br/><br/><br/> if (locale_name_on_entry) {<br/> setlocale(LC_NUMERIC, locale_name_on_entry); &lt;-- use freed value<br/> }<br/><br/>The lifetime of the string returned by setlocale() isn&#39;t well documented, but it is documented that it *may* be return a pointer to static storage, in which case the setlocale(LC_NUMERIC, &quot;C&quot;) may overwrite it, making the value useless for restoring the locale.<br/><br/>The attached should fix it.<br/><br/>#134182 (which I found after checking the version.pm PRs) has an incomplete patch for this.<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=134212<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256215.html Mon, 16 Sep 2019 06:53:15 +0000 [perl #134250] /c modified with substitute s/// by Tony Cook via RT On Mon, 01 Jul 2019 12:38:24 -0700, jim.avera@gmail.com wrote:<br/>&gt; <br/>&gt; This is a bug report for perl from jim.avera@gmail.com,<br/>&gt; generated with the help of perlbug 1.40 running under perl 5.26.2.<br/>&gt; <br/>&gt; <br/>&gt; -----------------------------------------------------------------<br/>&gt; &#39;man perlop&#39; indicates that the /c modifier may be used with the<br/>&gt; substitution operator:<br/>&gt; <br/>&gt; &quot;s/PATTERN/REPLACEMENT/msixpodualngcer&quot;<br/>&gt; Searches a string for a pattern, and if found, replaces that<br/>&gt; pattern<br/>&gt; with the replacement...<br/>&gt; <br/>&gt; but it does not seem to be implemented.<br/>&gt; Any use of /c with s/// produces<br/>&gt; <br/>&gt; &quot;Use of /c modifier is meaningless in s///&quot;<br/>&gt; <br/>&gt; Suggest fixing/clarifing the docs (or better, make it work i.e. leave<br/>&gt; pos() set to the character following the last match with /c is used).<br/><br/>Making /c behave like for s/// would be the reverse of the meaning of /c from m//.<br/><br/>Currently m/.../c prevents pos() being reset when the regexp doesn&#39;t match, but that&#39;s the case with s/// anyway (with or without the /g).<br/><br/>Changing s///c to modify pos() might break existing code that was written without warnings, so we&#39;d need to go through a deprecation cycle to remove it (which adds a default on warning rather than the default off warning you get now.)<br/><br/>A non-deprecation documentation patch is attached.<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: new<br/>https://rt.perl.org/Ticket/Display.html?id=134250<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256214.html Mon, 16 Sep 2019 04:56:39 +0000 [perl #125557] add hexfloat support to constant overloads by Tony Cook via RT On Sat, 14 Sep 2019 04:33:23 -0700, pjacklam@gmail.com wrote:<br/>&gt; Tony,<br/>&gt; <br/>&gt; I have tested the patch, and it looks good. Thanks for fixing this issue!<br/><br/>Thanks for the feedback, applied as 2cb5a7e8af11acb0eca22421ec5a4df7ef18e2a9.<br/><br/>Tony<br/><br/>---<br/>via perlbug: queue: perl5 status: open<br/>https://rt.perl.org/Ticket/Display.html?id=125557<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256213.html Mon, 16 Sep 2019 01:12:31 +0000 Re: Formal Request - Discourage Taint by demerphq So lets say we get rid of it, how would we do it? Would we complement<br/><br/>NO_TAINT_SUPPORT<br/><br/>to produce depreciation warnings? And then remove it the version afterwards?<br/><br/>Yves<br/><br/>On Sun, 15 Sep 2019 at 16:04, Tomasz Konojacki &lt;me@xenu.pl&gt; wrote:<br/>&gt;<br/>&gt; On Fri, 13 Sep 2019 11:40:01 -0400<br/>&gt; Chase Whitener &lt;cwhitener@gmail.com&gt; wrote:<br/>&gt;<br/>&gt; &gt; Taint mode was created a long time ago to help ensure safety with suidperl<br/>&gt; &gt; -it was designed to avoid dirty data messing up system calls. We&#39;ve long<br/>&gt; &gt; since realized suidperl was a bad idea, yet we have kept Taint mode<br/>&gt; &gt; around under the pretense that it makes our code safe; it&#39;s time to let<br/>&gt; &gt; that go.<br/>&gt; &gt;<br/>&gt; &gt; It did do one thing of note; it removed dot from @INC. Having @INC cleaned<br/>&gt; &gt; of dot caused a lot of work to happen to ensure things continued to<br/>&gt; &gt; function/install. That work has already been done at this point and<br/>&gt; &gt; removing Taint wouldn&#39;t add to the heartache anymore.<br/>&gt; &gt;<br/>&gt; &gt; It&#39;s nearly everywhere in the Perl code base and in lots of places on CPAN,<br/>&gt; &gt; slowing things down and creating bugs that otherwise wouldn&#39;t exist. For<br/>&gt; &gt; example, File::Spec is broken on Windows when used with Taint mode on. It&#39;s<br/>&gt; &gt; broken because Taint mode restricts use of environment variables (which<br/>&gt; &gt; doesn&#39;t protect anything). There&#39;s no good way to fix that. An example:<br/>&gt; &gt; https://rt.cpan.org/Ticket/Display.html?id=129791#txn-1863529<br/>&gt; &gt;<br/>&gt; &gt; Rather than re-stating everything that&#39;s been discussed already on the<br/>&gt; &gt; matter, I&#39;ll point you to a good summation on reddit here:<br/>&gt; &gt; https://www.reddit.com/r/perl6/comments/718z4o/taint_mode_for_perl_6/dnmu83i/<br/>&gt; &gt;<br/>&gt; &gt; Also, as was pointed out on IRC, we can simplify the Perl code by removing<br/>&gt; &gt; all of this confusion and getting rid of some of the absurdity such as the<br/>&gt; &gt; fact that there are two flags:<br/>&gt; &gt;<br/>&gt; &gt; SILENT_NO_TAINT_SUPPORT makes -T silently not do anything<br/>&gt; &gt; NO_TAINT_SUPPORT makes it an error<br/>&gt; &gt;<br/>&gt; &gt; In short, it&#39;s a placebo for safety that causes more problems than it ever<br/>&gt; &gt; even claimed to solve. Officially discouraging it makes sense. I see such<br/>&gt; &gt; discouragement coming in the form of:<br/>&gt; &gt; 1. Updating documentation to claim it discouraged.<br/>&gt; &gt; 2. Requiring user opt-in via build flags to build with Taint mode. The<br/>&gt; &gt; default build should be NO_TAINT_SUPPORT. My perfect world scenario would<br/>&gt; &gt; see both existing build flags done away with and a positive one<br/>&gt; &gt; (WITH_TAINT_SUPPORT maybe) that defaults to a falsey value being added.<br/>&gt; &gt; Either way, force users to choose to turn on Taint mode, keeping with the<br/>&gt; &gt; official discouragement stance.<br/>&gt; &gt;<br/>&gt; &gt; Thanks,<br/>&gt; &gt; Chase<br/>&gt;<br/>&gt; A *huge* +1 from me.<br/>&gt;<br/>&gt; Enforcing validation of the input sounds great in theory, but in<br/>&gt; practice, taint mode is a tool that makes your code die() in random<br/>&gt; places and forces you to litter your code with /(.*)/ to silence it.<br/>&gt;<br/>&gt; Most of the things that taint mode requires the programmer to validate<br/>&gt; are inherently unvalidatable. It&#39;s impossible to validate most<br/>&gt; environmental variables (such as $PATH) or, for example, the return<br/>&gt; value of readlink(). In such cases, passing them through /(.*)/ is the<br/>&gt; *only* possible course of action.<br/>&gt;<br/>&gt; Another problem with taint mode is that it&#39;s completely unpredictable.<br/>&gt; There is no way to predict whether some_function_from_cpan() will return<br/>&gt; a tainted value or not. Module authors rarely document or test it.<br/>&gt; It may also depend on a platform. This commit[1] is a real-life example<br/>&gt; of code that works around such a problem.<br/>&gt;<br/>&gt; In my opinion, taint mode is worthless and the sonner it&#39;s gone, the<br/>&gt; better.<br/>&gt;<br/>&gt; BTW, the bug linked by Chase is the reason why Ack, a very popular tool<br/>&gt; written in Perl, has been uninstallable on Windows for a few years now.<br/>&gt;<br/>&gt; [1] - https://perl5.git.perl.org/perl.git/commit/b3c872ebe7541431109f07330ab5123db843dea1<br/><br/><br/><br/>-- <br/>perl -Mre=debug -e &quot;/just|another|perl|hacker/&quot;<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256212.html Sun, 15 Sep 2019 16:44:45 +0000 Re: Formal Request - Discourage Taint by Tomasz Konojacki On Fri, 13 Sep 2019 11:40:01 -0400<br/>Chase Whitener &lt;cwhitener@gmail.com&gt; wrote:<br/><br/>&gt; Taint mode was created a long time ago to help ensure safety with suidperl<br/>&gt; -it was designed to avoid dirty data messing up system calls. We&#39;ve long<br/>&gt; since realized suidperl was a bad idea, yet we have kept Taint mode<br/>&gt; around under the pretense that it makes our code safe; it&#39;s time to let<br/>&gt; that go.<br/>&gt; <br/>&gt; It did do one thing of note; it removed dot from @INC. Having @INC cleaned<br/>&gt; of dot caused a lot of work to happen to ensure things continued to<br/>&gt; function/install. That work has already been done at this point and<br/>&gt; removing Taint wouldn&#39;t add to the heartache anymore.<br/>&gt; <br/>&gt; It&#39;s nearly everywhere in the Perl code base and in lots of places on CPAN,<br/>&gt; slowing things down and creating bugs that otherwise wouldn&#39;t exist. For<br/>&gt; example, File::Spec is broken on Windows when used with Taint mode on. It&#39;s<br/>&gt; broken because Taint mode restricts use of environment variables (which<br/>&gt; doesn&#39;t protect anything). There&#39;s no good way to fix that. An example:<br/>&gt; https://rt.cpan.org/Ticket/Display.html?id=129791#txn-1863529<br/>&gt; <br/>&gt; Rather than re-stating everything that&#39;s been discussed already on the<br/>&gt; matter, I&#39;ll point you to a good summation on reddit here:<br/>&gt; https://www.reddit.com/r/perl6/comments/718z4o/taint_mode_for_perl_6/dnmu83i/<br/>&gt; <br/>&gt; Also, as was pointed out on IRC, we can simplify the Perl code by removing<br/>&gt; all of this confusion and getting rid of some of the absurdity such as the<br/>&gt; fact that there are two flags:<br/>&gt; <br/>&gt; SILENT_NO_TAINT_SUPPORT makes -T silently not do anything<br/>&gt; NO_TAINT_SUPPORT makes it an error<br/>&gt; <br/>&gt; In short, it&#39;s a placebo for safety that causes more problems than it ever<br/>&gt; even claimed to solve. Officially discouraging it makes sense. I see such<br/>&gt; discouragement coming in the form of:<br/>&gt; 1. Updating documentation to claim it discouraged.<br/>&gt; 2. Requiring user opt-in via build flags to build with Taint mode. The<br/>&gt; default build should be NO_TAINT_SUPPORT. My perfect world scenario would<br/>&gt; see both existing build flags done away with and a positive one<br/>&gt; (WITH_TAINT_SUPPORT maybe) that defaults to a falsey value being added.<br/>&gt; Either way, force users to choose to turn on Taint mode, keeping with the<br/>&gt; official discouragement stance.<br/>&gt; <br/>&gt; Thanks,<br/>&gt; Chase<br/><br/>A *huge* +1 from me.<br/><br/>Enforcing validation of the input sounds great in theory, but in<br/>practice, taint mode is a tool that makes your code die() in random<br/>places and forces you to litter your code with /(.*)/ to silence it.<br/><br/>Most of the things that taint mode requires the programmer to validate<br/>are inherently unvalidatable. It&#39;s impossible to validate most<br/>environmental variables (such as $PATH) or, for example, the return<br/>value of readlink(). In such cases, passing them through /(.*)/ is the<br/>*only* possible course of action.<br/><br/>Another problem with taint mode is that it&#39;s completely unpredictable.<br/>There is no way to predict whether some_function_from_cpan() will return<br/>a tainted value or not. Module authors rarely document or test it.<br/>It may also depend on a platform. This commit[1] is a real-life example<br/>of code that works around such a problem.<br/><br/>In my opinion, taint mode is worthless and the sonner it&#39;s gone, the<br/>better.<br/><br/>BTW, the bug linked by Chase is the reason why Ack, a very popular tool<br/>written in Perl, has been uninstallable on Windows for a few years now.<br/><br/>[1] - https://perl5.git.perl.org/perl.git/commit/b3c872ebe7541431109f07330ab5123db843dea1<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256211.html Sun, 15 Sep 2019 14:04:29 +0000 Re: TONYC Grant Report August 2019 by Marcus Holland-Moritz +1, thanks Tony! <br/> <br/> <br/> <br/>On 2019-09-13, at 11:21:42 +1000, Tony Cook wrote: <br/> <br/>&gt; Approximately 54 tickets were reviewed, and 9 patches were <br/>&gt; applied <br/>&gt; <br/>&gt; [Hours] [Activity] <br/>&gt; 0.13 #118551 track down fix and close <br/>&gt; 1.10 #124256 rebase, testing, apply to blead <br/>&gt; 0.12 #125096 re-check and close <br/>&gt; 1.73 #126991 work on a fix <br/>&gt; 0.72 #131136 track down fix and close, and for other Storable <br/>&gt; tickets too&hellip; <br/>&gt; 0.50 #131990 track down the fix and close <br/>&gt; 0.13 #131999 track down fix and close <br/>&gt; 1.26 #132777 review and some re-work, testing, apply to blead <br/>&gt; #132777 research and comment <br/>&gt; 0.68 #133695 re-test and apply to blead <br/>&gt; 0.33 #133878, #134269 make public <br/>&gt; 1.78 #133981 minor fix, testing, try to diagnose an unrelated <br/>&gt; porting test failure, comment <br/>&gt; 0.78 #134138 re-work patch and comment <br/>&gt; 1.39 #134171 testing <br/>&gt; #134171 research, comment <br/>&gt; #134171 research and comment <br/>&gt; 0.25 #134219 review and request more information <br/>&gt; #134219 review and merge into #134266 <br/>&gt; 3.39 #134230 debugging, research, work on a fix <br/>&gt; #134230 work up a regression test, comment with patch <br/>&gt; #134230 testing, apply to blead <br/>&gt; 0.38 #134238 review and close <br/>&gt; 1.70 #134241 testing <br/>&gt; #134241 more testing <br/>&gt; 2.02 #134265 re-work supplied patches and comment <br/>&gt; #134265 re-test modified patch and apply to blead <br/>&gt; 3.04 #134266 work up a basic fix&hellip; which breaks tests <br/>&gt; #134266 work out problem, testing, comment with patch <br/>&gt; #134266 re-test and apply to blead <br/>&gt; 0.37 #134269 (sec) comment <br/>&gt; 0.17 #134270 merge into 134126 <br/>&gt; 1.62 #134277 debugging <br/>&gt; 1.02 #134288 review, testing <br/>&gt; #134288 finish up, apply to blead <br/>&gt; 1.15 #134290 review and comment <br/>&gt; #134290 research, comment and close. <br/>&gt; 0.17 #134295 re-revert the exit(0) fix, since I didn&rsquo;t make any <br/>&gt; progress in fixing the issues <br/>&gt; 1.12 #134312 research and comment <br/>&gt; #134312 research and comment some more <br/>&gt; 0.80 #134313 research and comment <br/>&gt; 0.50 #134320 review for proposal to backport, along with <br/>&gt; several other commits <br/>&gt; 4.72 #134325 debugging <br/>&gt; #134325 debugging, discussion with khw, comment <br/>&gt; #134325 debugging <br/>&gt; #134325 research, testing and comment <br/>&gt; 0.13 #134326 also fixed by khw&rsquo;s 134329 fix, comment <br/>&gt; 0.10 #134327 also fixed by khw&rsquo;s 134329 fix, comment <br/>&gt; 0.40 #134328 testing, try khw&rsquo;s 134329 fix, comment <br/>&gt; 1.42 #134329 testing, start bisect <br/>&gt; 0.43 #134337 comment <br/>&gt; 1.88 #134349 work on understanding code, work up a test, fix <br/>&gt; 0.85 #134360 review, research, apply to blead, PR to metaconfig <br/>&gt; 0.40 #134361 comment <br/>&gt; #134361 research, follow-up <br/>&gt; 1.98 #134362 (sec) comment <br/>&gt; #134362 (sec) follow-up <br/>&gt; #134362 (sec) work on a fix <br/>&gt; #134362 (sec) testing, comment with patch <br/>&gt; 4.91 #134363 review and request more information <br/>&gt; #134363 research, fail to reproduce <br/>&gt; #134363 more research <br/>&gt; #134363 more research into gcc implementation <br/>&gt; #134363 more research, comment <br/>&gt; #134363 comment <br/>&gt; 0.37 #134365 review discussion <br/>&gt; #134365 comment with simple patch <br/>&gt; 1.37 #134369 (sec) research, testing, comment <br/>&gt; 0.62 #134380 review, test porting and apply to blead <br/>&gt; 3.82 #134383 (sec) debugging <br/>&gt; #134383 (sec) two tries to find a fix, comment with patch <br/>&gt; 1.38 #38920 review ticket (linked from 134349) <br/>&gt; #38920 try to work up a test case, testing <br/>&gt; 0.73 clean up some query security tickets (asking for info, not <br/>&gt; reporting issues) <br/>&gt; 0.22 comment on macros vs inline functions <br/>&gt; 0.90 coverity build and submit <br/>&gt; 2.17 mail list about coverity scan, more review coverity issues <br/>&gt; 0.75 more discussion with khw <br/>&gt; 0.97 Re-test coverity fix branch and apply to blead <br/>&gt; 0.52 regexp runtime limits: rebase, testing, push to server <br/>&gt; (not to blead), comment on a related security ticket <br/>&gt; 0.98 review coverity issues <br/>&gt; 0.93 review khw&rsquo;s API list, discussion in #p5p <br/>&gt; 0.35 review khw&rsquo;s function doc list <br/>&gt; ====== <br/>&gt; 61.65 hours total <br/>&gt; <br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256210.html Sun, 15 Sep 2019 12:12:14 +0000 Re: Formal Request - Discourage Taint by Paul "LeoNerd" Evans On Fri, 13 Sep 2019 11:40:01 -0400<br/>Chase Whitener &lt;cwhitener@gmail.com&gt; wrote:<br/><br/>&gt; Taint mode was created a long time ago to help ensure safety with<br/>&gt; suidperl -it was designed to avoid dirty data messing up system<br/>&gt; calls. We&#39;ve long since realized suidperl was a bad idea, yet we have<br/>&gt; kept Taint mode around under the pretense that it makes our code<br/>&gt; safe; it&#39;s time to let that go.<br/><br/>I have nothing further to add, other than:<br/><br/> +1 to this<br/><br/>-- <br/>Paul &quot;LeoNerd&quot; Evans<br/><br/>leonerd@leonerd.org.uk | https://metacpan.org/author/PEVANS<br/>http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256209.html Sun, 15 Sep 2019 12:09:13 +0000 Re: [perl #134409] Perl intepreter exception on expressionsubstitution by Dave Mitchell On Thu, Sep 12, 2019 at 11:07:13AM +0100, Dave Mitchell wrote:<br/>&gt; On Mon, Sep 09, 2019 at 08:37:48PM +0000, Chris Crook wrote:<br/>&gt; &gt; Good news - the loop is only hit once or twice before it errors<br/>&gt; &gt; (depending on the order of retrieval from hash). I put a bit more code<br/>&gt; &gt; in ... results below.<br/>&gt; <br/>&gt; More good news: with the help of the extra feedback, I&#39;ve managed to<br/>&gt; construct a short script which fails on bleadperl. I&#39;m looking into it<br/>&gt; now.<br/><br/>Now fixed in blead with the following commit:<br/><br/>commit 4a69216a74159df74779841fa79d731bcc5c6a9d<br/>Author: David Mitchell &lt;davem@iabyn.com&gt;<br/>AuthorDate: Sat Sep 14 16:18:46 2019 +0100<br/>Commit: David Mitchell &lt;davem@iabyn.com&gt;<br/>CommitDate: Sat Sep 14 16:18:46 2019 +0100<br/><br/> Avoid panic when last s///g is tainted and utf8<br/> <br/> RT #134409<br/> <br/> In a repeated substitution, where the replacement is an expression,<br/> and when the last replacement value is both tainted and utf8, and<br/> everything earlier has been plain, and the final string is suitably<br/> shorter than the original, a panic resulted:<br/> <br/> sv_pos_b2u: bad byte offset, blen=1, byte=6<br/> <br/> This is because when at the end, taint magic is being being added to<br/> the target of the s///, the target SV has already had its buffer updated<br/> with the shorter result string, but still has the pos() magic set which<br/> corresponded to the original longer string (this pos value would, in the<br/> normal flow of things, be reset shortly afterwards).<br/> <br/> One quirk of sv_magic(), which adds any sort of magic including taint<br/> magic, is that it always checks for the presence of pos() magic, and if<br/> so, converts the byte to utf8 offset if necessary. This was seeing the<br/> invalid pos() offset and panicing.<br/> <br/> The check was added by v5.19.3-111-g25fdce4a16:<br/> &quot;Stop pos() from being confused by changing utf8ness&quot;<br/> It seems like a bit of hack to recalibrate pos() each time sv_magic()<br/> is called, but I&#39;ve left that alone (sleeping dogs and all that) and<br/> instead added a hack in the taint code path in pp_substcont to reset pos<br/> before setting taint.<br/><br/><br/><br/>-- <br/>Spock (or Data) is fired from his high-ranking position for not being able<br/>to understand the most basic nuances of about one in three sentences that<br/>anyone says to him.<br/> -- Things That Never Happen in &quot;Star Trek&quot; #19<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256208.html Sat, 14 Sep 2019 15:37:12 +0000 Re: [perl #125557] add hexfloat support to constant overloads by Peter John Acklam Tony,<br/><br/>I have tested the patch, and it looks good. Thanks for fixing this issue!<br/><br/>Peter<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256207.html Sat, 14 Sep 2019 11:33:14 +0000 Perl 5 Commit Summary by Perl 5 commit summary Perl 5 commit summary, activity since Wednesday<br/><br/>Current branch blead<br/>7 commits. 5 unique authors. 4 unique committers.<br/>116 files changed, 470 insertions(+), 163 deletions(-)<br/>Thanks, applied: James E Keenan (1)<br/>Snapshot: http://perl5.git.perl.org/perl.git/snapshot/06bfb2b160cbeb01.tar.gz<br/><br/> perldelta for 1e1b6d926a0c8361bc2ebd2b6630ac97988335e3<br/> James E Keenan 1 file changed, 5 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/06bfb2b160cbeb01<br/><br/> perldelta for 00ea29f1a18d6cb17456df2e33f105a90ddc8c3a<br/> James E Keenan 1 file changed, 4 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/c8d86fdce659794a<br/><br/> Update Test-Simple to CPAN version 1.302168<br/> Chad Granum 68 files changed, 144 insertions(+), 79 deletion<br/> http://perl5.git.perl.org/perl.git/commit/00ea29f1a18d6cb1<br/><br/> Update Scalar-List-Utils from 1.50 to 1.52<br/> Max Maischein 9 files changed, 93 insertions(+), 25 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/2ad8e1fad075936d<br/><br/> Update Module-Metadata to CPAN version 1.000037<br/> Chris &#39;BinGOs&#39; Williams 3 files changed, 45 insertions(+), 19 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/c7fb625702e97df5<br/><br/> Update ExtUtils-MakeMaker to CPAN version 7.38<br/> Chris &#39;BinGOs&#39; Williams 35 files changed, 164 insertions(+), 40 deletion<br/> http://perl5.git.perl.org/perl.git/commit/9bbd51b76a290c53<br/><br/> PATCH: [perl #134405] Compiler warnings in blead<br/> Karl Williamson 3 files changed, 15 insertions(+)<br/> http://perl5.git.perl.org/perl.git/commit/238965b4f5bba9e8<br/><br/>Current branch smoke-me/khw-ppport<br/>6 commits. 1 unique author. 1 unique committer.<br/>11 files changed, 362 insertions(+), 441 deletions(-)<br/><br/>Snapshot: http://perl5.git.perl.org/perl.git/snapshot/26273034df76e281.tar.gz<br/><br/> f<br/> Karl Williamson 1 file changed, 1 insertion(+), 1 deletion(-)<br/> http://perl5.git.perl.org/perl.git/commit/26273034df76e281<br/><br/> smoke6<br/> Karl Williamson 16 files changed, 832 insertions(+), 741 deletio<br/> http://perl5.git.perl.org/perl.git/commit/8580908e1f8eeccf<br/><br/> Some SvREFCNT_foo are no longer macros<br/> Karl Williamson 4 files changed, 38 insertions(+), 6 deletions(-<br/> http://perl5.git.perl.org/perl.git/commit/8d34e29c215d57fc<br/><br/> Strip leading underscore from macro name<br/> Karl Williamson 5 files changed, 9 insertions(+), 9 deletions(-)<br/> http://perl5.git.perl.org/perl.git/commit/036ac0d048b83258<br/><br/> Strip leading underscore from macro name<br/> Karl Williamson 6 files changed, 11 insertions(+), 11 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/8f3a6c9813ac942e<br/><br/> Strip leading underscore from macro name<br/> Karl Williamson 6 files changed, 15 insertions(+), 15 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/1cf8e9b2e9da52d1<br/><br/>New branch corion/cpan-sync<br/>2 commits. 1 unique author. 1 unique committer.<br/><br/>Snapshot: http://perl5.git.perl.org/perl.git/snapshot/5c0cb9d069b83b28.tar.gz<br/><br/> Update ExtUtils::Makemaker from 7.36 to 7.38<br/> Max Maischein 35 files changed, 164 insertions(+), 40 deletion<br/> http://perl5.git.perl.org/perl.git/commit/5c0cb9d069b83b28<br/><br/> Update Scalar-List-Utils from 1.50 to 1.52<br/> Max Maischein 9 files changed, 93 insertions(+), 25 deletions(<br/> http://perl5.git.perl.org/perl.git/commit/0d1c9c5ca5534cc4<br/> https://www.nntp.perl.org/group/perl.perl5.porters/2019/09/msg256206.html Sat, 14 Sep 2019 03:08:26 +0000