]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1274764 - Increasing memcached performance is possible because Cache::Memcached...
authorDylan Hardison <dylan@mozilla.com>
Wed, 1 Jun 2016 14:30:37 +0000 (10:30 -0400)
committerDylan Hardison <dylan@mozilla.com>
Wed, 1 Jun 2016 14:31:17 +0000 (10:31 -0400)
r=dkl,a=dylan

Bugzilla/Memcached.pm

index 8a367ea25c5eab0d3dcbe906ec4933ff2df25192..139824679162d996e5a35139038b0d2a96368ee8 100644 (file)
@@ -12,7 +12,6 @@ use strict;
 use warnings;
 
 use Bugzilla::Error;
-use Bugzilla::Util qw(trick_taint);
 use Scalar::Util qw(blessed);
 use URI::Escape;
 
@@ -243,51 +242,7 @@ sub _get {
 
     $key = $self->_encode_key($key)
         or return;
-    my $value = $self->{memcached}->get($key);
-    return unless defined $value;
-
-    # detaint returned values
-    # hashes and arrays are detainted just one level deep
-    if (ref($value) eq 'HASH') {
-        _detaint_hashref($value);
-    }
-    elsif (ref($value) eq 'ARRAY') {
-        foreach my $value (@$value) {
-            next unless defined $value;
-            # arrays of hashes and arrays are common
-            if (ref($value) eq 'HASH') {
-                _detaint_hashref($value);
-            }
-            elsif (ref($value) eq 'ARRAY') {
-                _detaint_arrayref($value);
-            }
-            elsif (!ref($value)) {
-                trick_taint($value);
-            }
-        }
-    }
-    elsif (!ref($value)) {
-        trick_taint($value);
-    }
-    return $value;
-}
-
-sub _detaint_hashref {
-    my ($hashref) = @_;
-    foreach my $value (values %$hashref) {
-        if (defined($value) && !ref($value)) {
-            trick_taint($value);
-        }
-    }
-}
-
-sub _detaint_arrayref {
-    my ($arrayref) = @_;
-    foreach my $value (@$arrayref) {
-        if (defined($value) && !ref($value)) {
-            trick_taint($value);
-        }
-    }
+    return $self->{memcached}->get($key);
 }
 
 sub _delete {
@@ -340,9 +295,7 @@ L<Bugzilla::Memcached> provides an interface to a Memcached server/servers, with
 the ability to get, set, or clear entries from the cache.
 
 The stored value must be an unblessed hashref, unblessed array ref, or a
-scalar.  Currently nested data structures are supported but require manual
-de-tainting after reading from Memcached (flat data structures are automatically
-de-tainted).
+scalar. 
 
 All values are stored in the Memcached systems using the prefix configured with
 the C<memcached_namespace> parameter, as well as an additional prefix managed