Simplify untainting - Module::Find can't return invalid names
Peter Rabbitson [Fri, 27 Apr 2012 07:09:15 +0000 (09:09 +0200)]
lib/DBIx/Class/Schema.pm
t/53lean_startup.t

index 049c626..2550cb5 100644 (file)
@@ -168,12 +168,9 @@ sub _findallmod {
   my $ns = shift || ref $proto || $proto;
 
   require Module::Find;
-  my @mods = Module::Find::findallmod($ns);
 
-  # try to untaint module names. mods where this fails
-  # are left alone so we don't have to change the old behavior
-  no locale; # localized \w doesn't untaint expression
-  return map { $_ =~ m/^( (?:\w+::)* \w+ )$/x ? $1 : $_ } @mods;
+  # untaint result
+  return map { $_ =~ /(.+)/ } Module::Find::findallmod($ns);
 }
 
 # returns a hash of $shortname => $fullname for every package
index 6c00ff6..b590b4a 100644 (file)
@@ -38,8 +38,6 @@ BEGIN {
     Exporter
 
     B
-    locale
-
     Devel::GlobalDestruction
     namespace::clean
     Try::Tiny