]> granicus.if.org Git - apache/commitdiff
Fix FileETag None directive.
authorJustin Erenkrantz <jerenkrantz@apache.org>
Sun, 1 Sep 2002 18:31:30 +0000 (18:31 +0000)
committerJustin Erenkrantz <jerenkrantz@apache.org>
Sun, 1 Sep 2002 18:31:30 +0000 (18:31 +0000)
- 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 <andrew@tellme.com>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@96609 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/http/http_protocol.c

diff --git a/CHANGES b/CHANGES
index ec3428aeb9a10b9516eb194e5ef499883c9d36ef..d661672d9c00d85423a924312aab4c26037f98e3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
 Changes with Apache 2.0.41
 
+  *) Fix FileETags none operation.  PR 12207.
+     [Justin Erenkrantz, Andrew Ho <andrew@tellme.com>]
+
   *) Restored the experimental leader/followers MPM to working
      condition and converted its thread synchronization from
      mutexes to atomic CAS.  [Brian Pane]
index 599adeb8a7438500bc89232d774c84c381c7b57a..faf6463ba21b1f80bcd7def4ec2909590e91aee3 100644 (file)
@@ -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;