diff --git a/includes/common.inc b/includes/common.inc index d7189ab..0ffd879 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -2197,8 +2197,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 an URL. return $colonpos !== FALSE && !preg_match('![/?#]!', substr($path, 0, $colonpos)) && drupal_strip_dangerous_protocols($path) == $path; }