You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by st...@apache.org on 2004/11/02 00:31:02 UTC

cvs commit: modperl-2.0/t/lib/TestCommon Utils.pm

stas        2004/11/01 15:31:02

  Modified:    t/lib/TestCommon Utils.pm
  Log:
  - more efficient version of is_tainted (no data allocated)
  - apparently the workaround for the problem with eval {} with
  perl5.8.0/setgid can be replaced with 'use warnings FATAL => 'all';'
  
  Revision  Changes    Path
  1.6       +11 -12    modperl-2.0/t/lib/TestCommon/Utils.pm
  
  Index: Utils.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/lib/TestCommon/Utils.pm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -u -r1.5 -r1.6
  --- Utils.pm	19 Oct 2004 02:48:39 -0000	1.5
  +++ Utils.pm	1 Nov 2004 23:31:02 -0000	1.6
  @@ -3,16 +3,14 @@
   use strict;
   use warnings FATAL => 'all';
   
  -BEGIN {
  -    # perl 5.8.0 (only) croaks on eval {} block at compile time when
  -    # it thinks the application is setgid. workaround: shutdown
  -    # compile time errors for this function
  -    local $SIG{__DIE__} = sub { };
  -    # perl 5.6.x only triggers taint protection on strings which are
  -    # at least one char long
  -    sub is_tainted {
  -        return ! eval { eval join '', '#', map substr($_, 0, 0), @_; 1};
  -    }
  +# perl 5.6.x only triggers taint protection on strings which are at
  +# least one char long
  +sub is_tainted {
  +    return ! eval {
  +        eval join '', '#',
  +            map defined() ? substr($_, 0, 0) : (), @_;
  +        1;
  +    };
   }
   
   1;
  @@ -49,9 +47,10 @@
   
   =head2 is_tainted()
   
  -  is_tainted($data)
  +  is_tainted(@data);
   
  -returns I<TRUE> if C<$data> is tainted, I<FALSE> otherwise
  +returns I<TRUE> if at least one element in C<@data> is tainted,
  +I<FALSE> otherwise.