Subject: apache2.2-common: mod_cache doesn't handle If-Range correctly Package: apache2.2-common Version: 2.2.3-4+etch4 Severity: normal Tags: patch
*** Please type your report below this line *** Using mod_cache, if an object is in the cache, but expired, and the backend has a newer version of the object, and a client makes an If-Range request, then mod_cache will ignore the If-Range condition and return only the requested Range of the new version, even when it should have returned the whole of the new version. <https://issues.apache.org/bugzilla/show_bug.cgi?id=44579> has a more detailed report and the following patch for Apache 2.2.8, which will also work on 2.2.3: Index: modules/cache/mod_cache.c =================================================================== --- modules/cache/mod_cache.c (revision 634179) +++ modules/cache/mod_cache.c (working copy) @@ -613,6 +613,12 @@ cache->provider->remove_entity(cache->stale_handle); /* Treat the request as if it wasn't conditional. */ cache->stale_handle = NULL; + /* + * Restore the original request headers as they may be needed + * by further output filters like the byterange filter to make + * the correct decisions. + */ + r->headers_in = cache->stale_headers; } } -- System Information: Debian Release: 4.0 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.18-6-686 Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]