summaryrefslogtreecommitdiffstats
path: root/system/core/Security.php
diff options
context:
space:
mode:
authorAndrey Andreev <narf@devilix.net>2014-02-10 12:24:44 +0100
committerAndrey Andreev <narf@devilix.net>2014-02-10 12:24:44 +0100
commit29e12641a1bb952f493462db6757ae12c7da1f2c (patch)
tree15a3c42f9d8ff53615d90d88b70547c0ef662110 /system/core/Security.php
parentf7f9dca050eb439028797a62eb2d4cac89daf5c5 (diff)
CI_Security: URL-decode until possible
Diffstat (limited to 'system/core/Security.php')
-rw-r--r--system/core/Security.php6
1 files changed, 5 insertions, 1 deletions
diff --git a/system/core/Security.php b/system/core/Security.php
index 75c994ae1..beb7f56e0 100644
--- a/system/core/Security.php
+++ b/system/core/Security.php
@@ -359,7 +359,11 @@ class CI_Security {
*
* Note: Use rawurldecode() so it does not remove plus signs
*/
- $str = rawurldecode($str);
+ do
+ {
+ $str = rawurldecode($str);
+ }
+ while (preg_match('/%[0-9a-f]{2,}/i', $str));
/*
* Convert character entities to ASCII