From 30f630180bab5043263d4372db0b7a5951ffc5c0 Mon Sep 17 00:00:00 2001 From: Graham Leggett Date: Sat, 14 Sep 2013 13:32:25 +0000 Subject: [PATCH] mod_cache: Avoid a crash with strcmp() when the hostname is not provided. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1523235 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 3 +++ modules/cache/cache_storage.c | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index f2de0f886a0..026428b2359 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) mod_cache: Avoid a crash with strcmp() when the hostname is not provided. + [Graham Leggett] + *) mod_lua: Add rudimentary support for WebSocket interaction. This is currently request-bound and only supports the WS protocol. [Daniel Gruno] diff --git a/modules/cache/cache_storage.c b/modules/cache/cache_storage.c index af60a39b84f..782dc712fcf 100644 --- a/modules/cache/cache_storage.c +++ b/modules/cache/cache_storage.c @@ -713,7 +713,9 @@ int cache_invalidate(cache_request_rec *cache, request_rec *r) || APR_SUCCESS != cache_canonicalise_key(r, r->pool, location, &location_uri, &location_key) - || strcmp(r->parsed_uri.hostname, location_uri.hostname)) { + || !(r->parsed_uri.hostname && location_uri.hostname + && !strcmp(r->parsed_uri.hostname, + location_uri.hostname))) { location_key = NULL; } } @@ -726,8 +728,9 @@ int cache_invalidate(cache_request_rec *cache, request_rec *r) || APR_SUCCESS != cache_canonicalise_key(r, r->pool, content_location, &content_location_uri, &content_location_key) - || strcmp(r->parsed_uri.hostname, - content_location_uri.hostname)) { + || !(r->parsed_uri.hostname && content_location_uri.hostname + && !strcmp(r->parsed_uri.hostname, + content_location_uri.hostname))) { content_location_key = NULL; } } -- 2.47.3