Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undef is never tainted #2681

Closed
p5pRT opened this issue Oct 4, 2000 · 1 comment
Closed

undef is never tainted #2681

p5pRT opened this issue Oct 4, 2000 · 1 comment

Comments

@p5pRT
Copy link

p5pRT commented Oct 4, 2000

Migrated from rt.perl.org#4380 (status was 'resolved')

Searchable as RT4380$

@p5pRT
Copy link
Author

p5pRT commented Oct 4, 2000

From pimlott@idiomtech.com

Created by pimlott@idiomtech.com

There are times when external data can cause a variable to be set to undef,
but the variable is not tainted.

  #!/usr/bin/perl -T

  sub is_tainted { ! eval { join('',@​_), kill 0; 1 } }
  sub print_info
  {
  my $var = shift;
  print "variable is ";
  print "un" unless defined $var;
  print "defined and ";
  print "not " unless is_tainted $var;
  print "tainted\n";
  }

  open IN, '/etc/passwd' or die $!; # any non-empty file will do here
  undef $/;
  $foo = <IN>;
  print_info $foo;
  $foo = <IN>;
  print_info $foo;

This prints

  variable is defined and tainted
  variable is undefined and not tainted

Since the contents of the file may control when the result of <> is undef,
the undef should be tainted. I guess the bug results from using the
stardard sv_undef.

Andrew

Perl Info


Site configuration information for perl 5.00503:

Configured by drow at Sun Apr 30 12:07:23 EDT 2000.

Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=linux, osvers=2.2.15pre14, archname=i386-linux
    uname='linux them 2.2.15pre14 #2 smp mon mar 13 14:29:00 est 2000 i686 unknown '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O2 ', gccversion=2.95.2 20000313 (Debian GNU/Linux)
    cppflags='-Dbool=char -DHAS_BOOL -D_REENTRANT -DDEBIAN -I/usr/local/include'
    ccflags ='-Dbool=char -DHAS_BOOL -D_REENTRANT -DDEBIAN -I/usr/local/include'
    stdchar='char', d_stdstdio=undef, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldbm -ldb -ldl -lm -lc -lposix -lcrypt
    libc=, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
    


@INC for perl 5.00503:
    /home/pimlott/idiom/perl
    /usr/lib/perl5/5.005/i386-linux
    /usr/lib/perl5/5.005
    /usr/local/lib/site_perl/i386-linux
    /usr/local/lib/site_perl
    /usr/lib/perl5
    .


Environment for perl 5.00503:
    HOME=/home/pimlott
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/pimlott/bin:/usr/local/atria/bin:/usr/sbin:/sbin:/home/pimlott/bin:/usr/local/atria/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
    PERL5LIB=/home/pimlott/idiom/perl
    PERL_BADLANG (unset)
    SHELL=/usr/bin/zsh


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant