Closed p5pRT closed 7 years ago
bisect
commit 8b0c3377906a6f991cd6c21a674bf9561d85e3cb Author: David Mitchell \davem@​iabyn\.com Date: Wed Oct 5 10:10:56 2016 +0100
Better optimise array and hash assignment
diagnostics
cpantesters has not yet caught up enough\, I do not see the results yet there\, so here is text:
# Failed test 'use Devel::SearchINC;'
# at t/03_taint.t line 5.
# Tried to use 'Devel::SearchINC'.
# Error: Insecure dependency in chdir while running with -T switch at /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7/File/Find.pm line 579.
# BEGIN failed--compilation aborted at t/03_taint.t line 5.
# Failed test 'use C::D::F;'
# at t/03_taint.t line 6.
# Tried to use 'C::D::F'.
# Error: Can't locate C/D/F.pm in @INC (you may need to install the C::D::F module) (@INC contains: CODE(0x25f36f0) /tmp/loop_over_bdir-15358-c8ZwbZ/Devel-SearchINC-2.103460-0/blib/lib /tmp/loop_over_bdir-15358-c8ZwbZ/Devel-SearchINC-2.103460-0/blib/arch /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7/x86_64-linux /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7 /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7/x86_64-linux /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7) at t/03_taint.t line 6.
# BEGIN failed--compilation aborted at t/03_taint.t line 6.
Undefined subroutine &C::D::F::answer called at t/03_taint.t line 8.
# Looks like your test exited with 255 just after 2.
t/03_taint.t .................
Dubious\, test returned 255 (wstat 65280\, 0xff00)
Failed 3/3 subtests
perl -V
% /home/sand/src/perl/repoperls/installed-perls/perl/*5.25.6-78-g*/????/bin/perl -V
Summary of my perl5 (revision 5 version 25 subversion 7) configuration:
Commit id: 8b0c3377906a6f991cd6c21a674bf9561d85e3cb
Platform:
osname=linux
osvers=4.7.0-1-amd64
archname=x86_64-linux
uname='linux k83 4.7.0-1-amd64 #1 smp debian 4.7.8-1 (2016-10-19) x86_64 gnulinux '
config_args='-Dprefix=/home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc -Dmyhostname=k83 -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Dlibswanted=cl pthread socket inet nsl gdbm dbm malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat -Uuseithreads -Uuselongdouble -DDEBUGGING=-g'
hint=recommended
useposix=true
d_sigaction=define
useithreads=undef
usemultiplicity=undef
use64bitint=define
use64bitall=define
uselongdouble=undef
usemymalloc=n
bincompat5005=undef
Compiler:
cc='cc'
ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
optimize='-O2 -g'
cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='6.2.0 20160830'
gccosandvers=''
intsize=4
longsize=8
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long'
ivsize=8
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='cc'
ldflags =' -fstack-protector-strong -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
libs=-lpthread -lnsl -lgdbm -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.24.so
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version='2.24'
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags='-Wl\,-E'
cccdlflags='-fPIC'
lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'
Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF Built under linux Compiled at Nov 1 2016 18:40:41 @INC: /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7/x86_64-linux /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/site_perl/5.25.7 /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7/x86_64-linux /home/sand/src/perl/repoperls/installed-perls/perl/v5.25.6-78-g8b0c337/79cc/lib/5.25.7 .
-- andreas
Also affected: SREZIC/Tk-804.033.tar.gz
Diagnostics (reports to cpantesters are on their way):
Test Summary Report
t/canvas.t (Wstat: 0 Tests: 166 Failed: 0) TODO passed: 124 t/listbox.t (Wstat: 512 Tests: 537 Failed: 2) Failed tests: 495\, 498 TODO passed: 320-322\, 328\, 501-502 Non-zero exit status: 2 t/listvar.t (Wstat: 0 Tests: 18 Failed: 1) Failed test: 10 t/text.t (Wstat: 0 Tests: 415 Failed: 0) TODO passed: 121 t/wm-tcl.t (Wstat: 0 Tests: 315 Failed: 0) TODO passed: 86-87\, 154-157\, 164-165\, 175-178\, 221-224 237-239\, 264-265\, 275-276\, 280-283 t/zzScrolled.t (Wstat: 0 Tests: 94 Failed: 0) TODO passed: 52\, 66\, 80\, 94 Files=75\, Tests=4350\, 57 wallclock secs ( 0.63 usr 0.13 sys + 14.12 cusr 1.27 csys = 16.15 CPU) Result: FAIL Failed 2/75 test programs. 3/4350 subtests failed.
-- andreas
On Tue\, Nov 01\, 2016 at 03:07:14PM -0700\, Andreas J. Koenig via RT wrote:
# New Ticket Created by (Andreas J. Koenig) # Please include the string: [perl #129996] # in the subject line of all future correspondence about this issue. # \<URL: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=129996 >
bisect ------ commit 8b0c3377906a6f991cd6c21a674bf9561d85e3cb Author: David Mitchell \davem@​iabyn\.com Date: Wed Oct 5 10:10:56 2016 +0100
Better optimise array and hash assignment
Should be fixed by the following. I haven't been able to check if Tk is fixed too\, as it won't build for me (and life is to short to find out why)\, but I'm hoping it is fixed too.
commit c73f612f8535d5db75d096a430a7938ce1c28a10 Author: David Mitchell \davem@​iabyn\.com AuthorDate: Wed Nov 2 16:05:54 2016 +0000 Commit: David Mitchell \davem@​iabyn\.com CommitDate: Wed Nov 2 16:26:24 2016 +0000
fix taint handling in list assignment
My recent commit v5.25.6-79-gb09ed99 reworked list assignment\, and
accidentally broke taint handling at the same time.
The basic idea is that each element is independent; in:
($a\, $b\, ...) = ($tainted\, $untainted\, ...);
$a should end up tainted\, $b should end up untainted\, the statement
containing the assign should remain untainted\, and if the statement was
already tainted it shouldn't affect the assign.
Surprisingly this is completely untested\, which is why I failed to spot it
when I broke it.
Now fixed. In fact in addition I spotted something that had always been
broken\, and fixed that too: it was tainting the rest of the statement; in:
(($a) = ($TAINT. "x"))\, ($b = $b . "x");
The taint in the list assign to $a was lingering to mess up and taint $b.
Prior to v5.25.6-79-gb09ed99 \, pp_assign looked roughly like:
for (...each lhs elem...) {
TAINT_NOT;
switch (lhs type) {
case scalar:
assign a value to lhs;
break;
case SVt_PVAV:
av_clear();
for (...each rhs elem...)
sv = newSV(0);
sv_setsv(sv\, rhs_elem);
av_store(av\, i\, sv);
TAINT_NOT;
}
break;
}
case SVt_PVHV:
...similarly...
}
Commit v5.25.6-79-gb09ed99 accidentally removed *all* the TAINT_NOT's.
This commit re-adds the first TAINT_NOT\, but doesn't re-add the
per-array/hash TAINT_NOT's\, on the grounds that the aggregates are first
emptied\, so any elements being assigned to will be fresh and can't have
taint magic attached\, so calling mg_set() on them won't set the taint
value to 1 even if PL_tainted is set.
But this commit does add an extra TAINT_NOT *after* the outer loop\, which
is what I think is fixing a longstanding bug.
-- If life gives you lemons\, you'll probably develop a citric acid allergy.
The RT System itself - Status changed from 'new' to 'open'
On Wed\, 02 Nov 2016 09:35:43 -0700\, "Dave Mitchell via RT" \perlbug\-followup@​perl\.org said:
> Should be fixed by the following. I haven't been able to check if Tk is > fixed too\, as it won't build for me (and life is to short to find out > why)\, but I'm hoping it is fixed too.
Thanks\, I can confirm that Devel::SearchINC is fixed with this change.
But Tk isn't. What's your failure mode?
-- andreas
On Wed\, Nov 02\, 2016 at 09:38:16PM +0100\, Andreas Koenig wrote:
On Wed\, 02 Nov 2016 09:35:43 -0700\, "Dave Mitchell via RT" \perlbug\-followup@​perl\.org said:
Should be fixed by the following. I haven't been able to check if Tk is fixed too\, as it won't build for me (and life is to short to find out why)\, but I'm hoping it is fixed too.
Thanks\, I can confirm that Devel::SearchINC is fixed with this change.
But Tk isn't. What's your failure mode?
make[2]: Entering directory '/home/davem/.cpan/build/Tk-804.033-1/PNG/libpng' cc -fPIC -c -Wall -O2 -I../zlib pngtest.c cc -fPIC -s -L../zlib -o pngtest pngtest.o libpng.a -lz -lm libpng.a(png.o): In function `png_init_mmx_flags': png.c:(.text+0xb7f): undefined reference to `png_mmx_support' libpng.a(pngread.o): In function `png_read_row': pngread.c:(.text+0xfe2): undefined reference to `png_combine_row' pngread.c:(.text+0x1005): undefined reference to `png_combine_row' pngread.c:(.text+0x1096): undefined reference to `png_combine_row' pngread.c:(.text+0x10b3): undefined reference to `png_combine_row' pngread.c:(.text+0x112c): undefined reference to `png_read_filter_row' pngread.c:(.text+0x114c): undefined reference to `png_do_read_interlace' pngread.c:(.text+0x119b): undefined reference to `png_combine_row' pngread.c:(.text+0x11e0): undefined reference to `png_combine_row' pngread.c:(.text+0x1214): undefined reference to `png_combine_row' pngread.c:(.text+0x1248): undefined reference to `png_combine_row' pngread.c:(.text+0x1287): undefined reference to `png_combine_row' libpng.a(pngread.o):pngread.c:(.text+0x12c1): more undefined references to `png_combine_row' follow
-- Lear: Dost thou call me fool\, boy? Fool: All thy other titles thou hast given away; that thou wast born with.
On Wed\, Nov 02\, 2016 at 10:22:02PM +0000\, Dave Mitchell wrote:
On Wed\, Nov 02\, 2016 at 09:38:16PM +0100\, Andreas Koenig wrote:
On Wed\, 02 Nov 2016 09:35:43 -0700\, "Dave Mitchell via RT" \perlbug\-followup@​perl\.org said:
Should be fixed by the following. I haven't been able to check if Tk is fixed too\, as it won't build for me (and life is to short to find out why)\, but I'm hoping it is fixed too.
Thanks\, I can confirm that Devel::SearchINC is fixed with this change.
But Tk isn't. What's your failure mode?
make[2]: Entering directory '/home/davem/.cpan/build/Tk-804.033-1/PNG/libpng' cc -fPIC -c -Wall -O2 -I../zlib pngtest.c cc -fPIC -s -L../zlib -o pngtest pngtest.o libpng.a -lz -lm libpng.a(png.o): In function `png_init_mmx_flags': png.c:(.text+0xb7f): undefined reference to `png_mmx_support' libpng.a(pngread.o): In function `png_read_row': pngread.c:(.text+0xfe2): undefined reference to `png_combine_row' pngread.c:(.text+0x1005): undefined reference to `png_combine_row' pngread.c:(.text+0x1096): undefined reference to `png_combine_row' pngread.c:(.text+0x10b3): undefined reference to `png_combine_row' pngread.c:(.text+0x112c): undefined reference to `png_read_filter_row' pngread.c:(.text+0x114c): undefined reference to `png_do_read_interlace' pngread.c:(.text+0x119b): undefined reference to `png_combine_row' pngread.c:(.text+0x11e0): undefined reference to `png_combine_row' pngread.c:(.text+0x1214): undefined reference to `png_combine_row' pngread.c:(.text+0x1248): undefined reference to `png_combine_row' pngread.c:(.text+0x1287): undefined reference to `png_combine_row' libpng.a(pngread.o):pngread.c:(.text+0x12c1): more undefined references to `png_combine_row' follow
After RTFMing and installing some extra RPMs\, I can can build it now\, and am investigating the failures.
-- Nothing ventured\, nothing lost.
On Thu\, Nov 03\, 2016 at 12:07:43PM +0000\, Dave Mitchell wrote:
After RTFMing and installing some extra RPMs\, I can can build it now\, and am investigating the failures.
Should be fixed by v5.25.6-162-g80c1439
-- The Enterprise successfully ferries an alien VIP from one place to another without serious incident. -- Things That Never Happen in "Star Trek" #7
On Fri\, 04 Nov 2016 10:23:45 -0700\, "Dave Mitchell via RT" \perlbug\-followup@​perl\.org said:
> Should be fixed by v5.25.6-162-g80c1439
Beautiful! And there was much rejoicing. Thanks!
-- andreas
@iabyn - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#129996 (status was 'resolved')
Searchable as RT129996$