summaryrefslogtreecommitdiff
path: root/includes/common.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/common.inc')
-rw-r--r--includes/common.inc14
1 files changed, 9 insertions, 5 deletions
diff --git a/includes/common.inc b/includes/common.inc
index 66464963a..8ff820452 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -807,16 +807,20 @@ function drupal_http_request($url, array $options = array()) {
$result = new stdClass();
- // Validate the passed URL. FILTER_VALIDATE_URL uses parse_url() internally,
- // but unlike parse_url() itself, it will not throw a run-time notice for
- // bogus URLs.
- if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
+ // Parse the URL and make sure we can handle the schema.
+ $uri = @parse_url($url);
+
+ if ($uri == FALSE) {
$result->error = 'unable to parse URL';
$result->code = -1001;
return $result;
}
- $uri = parse_url($url);
+ if (!isset($uri['scheme'])) {
+ $result->error = 'missing schema';
+ $result->code = -1002;
+ return $result;
+ }
timer_start(__FUNCTION__);