aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCash Costello <cash.costello@gmail.com>2011-12-17 08:43:49 -0500
committerCash Costello <cash.costello@gmail.com>2011-12-17 08:43:49 -0500
commitc529671a522dea0dcfc280815092ee1f5127b92b (patch)
tree6707950a6ddd666eb6f33322d6c2b6e1fc04f4e2
parentc97e17eba9a5bd2272c27b15c18580c964a57f9d (diff)
downloadelgg-c529671a522dea0dcfc280815092ee1f5127b92b.tar.gz
elgg-c529671a522dea0dcfc280815092ee1f5127b92b.tar.bz2
Fixes #4190 accepting full urls with non-ascii characters
-rw-r--r--engine/lib/output.php7
1 files changed, 6 insertions, 1 deletions
diff --git a/engine/lib/output.php b/engine/lib/output.php
index 989eca60e..6554481f5 100644
--- a/engine/lib/output.php
+++ b/engine/lib/output.php
@@ -234,7 +234,7 @@ function elgg_clean_vars(array $vars = array()) {
*
* @example
* elgg_normalize_url(''); // 'http://my.site.com/'
- * elgg_normalize_url('dashboard'); // 'http://my.site.com/dashboard'
+ * elgg_normalize_url('dashboard'); // 'http://my.site.com/dashboard'
* elgg_normalize_url('http://google.com/'); // no change
* elgg_normalize_url('//google.com/'); // no change
*
@@ -257,6 +257,11 @@ function elgg_normalize_url($url) {
$validated = filter_var($url, FILTER_VALIDATE_URL);
}
+ // work around for handling absoluate IRIs (RFC 3987) - see #4190
+ if (!$validated && (strpos($url, 'http:') === 0) || (strpos($url, 'https:') === 0)) {
+ $validated = true;
+ }
+
if ($validated) {
// all normal URLs including mailto:
return $url;