Front page | perl.perl5.porters |
Postings from July 2001
[ID 20010704.003] Taint mode breaks global match
Thread Next
From:
dagl
Date:
July 4, 2001 03:12
Subject:
[ID 20010704.003] Taint mode breaks global match
Message ID:
200107041012.MAA16949@iweb.nextel.no
This is a bug report for perl from dag@nimrod.no,
generated with the help of perlbug 1.33 running under perl v5.6.1.
-----------------------------------------------------------------
In taint mode, pos() is not set after a global match on $_[0].
Run the example below and type in any string. In taint mode, pos() is
not set.
The example works as expected when taint mode is not set. A workaround
is to copy $_[0] into another scalar and do the match on that.
This is tested on several versions of Perl on Linux and Solaris. The
bug seems to have been introduced in Perl 5.005.
#!/usr/bin/perl -wT
sub parse($)
{
$_[0] =~ /./g;
print 'pos = ', pos($_[0]), "\n";
}
my $txt = <>;
parse($txt);
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
Site configuration information for perl v5.6.1:
Configured by root at Thu Apr 26 15:44:21 MET DST 2001.
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=solaris, osvers=2.6, archname=sun4-solaris-ld
uname='sunos unsafe.nextra.no 5.6 generic_105181-26 sun4u sparc '
config_args=''
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=define
Compiler:
cc='cc', ccflags ='-I/local/BerkeleyDB/include -I/local/gnu/include -I/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-I/local/BerkeleyDB/include -I/local/gnu/include -I/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccversion='Sun WorkShop 6 2000/06/19 C 5.1 Patch 109491-02', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
alignbytes=8, usemymalloc=y, prototype=define
Linker and Libraries:
ld='cc', ldflags ='-R/local/BerkeleyDB/lib:/local/gnu/lib:/local/lib:/opt/SUNWspro/WS6/lib:/usr/lib:/usr/ccs/lib -L/local/BerkeleyDB/lib -L/local/gnu/lib -L/local/lib -L/opt/SUNWspro/lib -R/opt/SUNWspro/lib'
libpth=/local/BerkeleyDB/lib /local/gnu/lib /local/lib /opt/SUNWspro/WS6/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lsec -lsunmath
perllibs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsec -lsunmath
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-KPIC', lddlflags='-G -R/local/BerkeleyDB/lib:/local/gnu/lib:/local/lib:/opt/SUNWspro/WS6/lib:/opt/SUNWspro/lib:/usr/lib:/usr/ccs/lib -L/local/BerkeleyDB/lib -L/local/gnu/lib -L/local/lib -L/opt/SUNWspro/lib'
Locally applied patches:
---
@INC for perl v5.6.1:
/local/perl/5.6.1/lib/5.6.1/sun4-solaris-ld
/local/perl/5.6.1/lib/5.6.1
/local/perl/5.6.1/lib/site_perl/5.6.1/sun4-solaris-ld
/local/perl/5.6.1/lib/site_perl/5.6.1
/local/perl/5.6.1/lib/site_perl
/local/perl/lib
.
---
Environment for perl v5.6.1:
HOME=/home/d/dagl
LANG (unset)
LANGUAGE (unset)
LC_CTYPE=iso_8859_1
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/local/site/bin:/local/sbin:/local/acrobat/4/bin:/local/perl/5.005/bin:/local/gnu/bin:/local/bin:/usr/bin:/bin:/usr/ccs/bin:/usr/sbin:/local/X11/bin:/usr/ucb:/sbin:/usr/openwin/bin:/etc
PERL_BADLANG (unset)
SHELL=/local/gnu/bin/bash
Thread Next
-
[ID 20010704.003] Taint mode breaks global match
by dagl