summaryrefslogtreecommitdiff
path: root/includes/common.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/common.inc')
-rw-r--r--includes/common.inc5
1 files changed, 3 insertions, 2 deletions
diff --git a/includes/common.inc b/includes/common.inc
index ba0b6fffe..3b32a2083 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -2196,8 +2196,9 @@ function url($path = NULL, array $options = array()) {
*/
function url_is_external($path) {
$colonpos = strpos($path, ':');
- // Only call the slow drupal_strip_dangerous_protocols() if $path contains a
- // ':' before any / ? or #.
+ // Avoid calling drupal_strip_dangerous_protocols() if there is any
+ // slash (/), hash (#) or question_mark (?) before the colon (:)
+ // occurrence - if any - as this would clearly mean it is not a URL.
return $colonpos !== FALSE && !preg_match('![/?#]!', substr($path, 0, $colonpos)) && drupal_strip_dangerous_protocols($path) == $path;
}