From a85a3814b8b873bb1f94bfe8141362229f49683b Mon Sep 17 00:00:00 2001 From: Justin Erenkrantz Date: Sun, 1 Sep 2002 18:31:30 +0000 Subject: [PATCH] Fix FileETag None directive. - Fix segfault on strlen computation on the empty string in vlv case - If the etag is "", don't set the ETag header to be "" - leave the header NULL instead. Andrew's patch would change ap_meets_condition to accept "", but Justin thinks it would be better just to sidestep it all together and not set ETag when it would be "". PR: 12207 Submitted by: Andrew Ho git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@96609 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 3 +++ modules/http/http_protocol.c | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index ec3428aeb9..d661672d9c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ Changes with Apache 2.0.41 + *) Fix FileETags none operation. PR 12207. + [Justin Erenkrantz, Andrew Ho ] + *) Restored the experimental leader/followers MPM to working condition and converted its thread synchronization from mutexes to atomic CAS. [Brian Pane] diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c index 599adeb8a7..faf6463ba2 100644 --- a/modules/http/http_protocol.c +++ b/modules/http/http_protocol.c @@ -2659,6 +2659,11 @@ AP_DECLARE(void) ap_set_etag(request_rec *r) if (!r->vlist_validator) { etag = ap_make_etag(r, 0); + + /* If we get a blank etag back, don't set the header. */ + if (!etag[0]) { + return; + } } else { /* If we have a variant list validator (vlv) due to the @@ -2682,8 +2687,12 @@ AP_DECLARE(void) ap_set_etag(request_rec *r) variant_etag = ap_make_etag(r, vlv_weak); - /* merge variant_etag and vlv into a structured etag */ + /* If we get a blank etag back, don't append vlv and stop now. */ + if (!variant_etag[0]) { + return; + } + /* merge variant_etag and vlv into a structured etag */ variant_etag[strlen(variant_etag) - 1] = '\0'; if (vlv_weak) { vlv += 3; -- 2.40.0