Thanks.  There was a fix committed for this a couple of weeks
ago, so 2.0.41 will have the right logic.

Brian

Spinka, Kristofer wrote:

>Description:
>------------
>  The Apache environment variable "gzip-only-text/html" was designed to
>allow control over whether non-text/html content will be compressed with
>the mod_deflate filter.  However, there is a small logic error in the
>mod_deflate.c code that prevents this from functioning properly.
>
>
>Resolution:
>-----------
>  There is an "if" statement that contains a call to the function strcmp,
>which compares the value of the environment variable "gzip-only-text/html"
>to the character string "1".  However, strcmp returns 0 on success, which
>in this case will cause an undesired decision in this "if" statement.
>  In addition, the ap_pass_brigade was "mispositioned", causing an
>additional failure of this logic set; this is also corrected.
>
>
>Patch:
>------
>--- orig/httpd-2.0.40/modules/filters/mod_deflate.c     Wed Aug  7
>11:26:17 2002
>+++ httpd-2.0.40/modules/filters/mod_deflate.c  Tue Sep 10 23:09:15 2002
>@@ -281,10 +281,10 @@
>              || strncmp(r->content_type, "text/html", 9)) {
>             const char *env_value = apr_table_get(r->subprocess_env,
>                                                   "gzip-only-text/html");
>-            if ( env_value == NULL || strcmp(env_value,"1") ) {
>+            if ( env_value == NULL || strncmp(env_value,"1",1) == 0 ) {
>                 ap_remove_output_filter(f);
>+                return ap_pass_brigade(f->next, bb);
>             }
>-            return ap_pass_brigade(f->next, bb);
>         }
>
>         /* Let's see what our current Content-Encoding is.
>--- end patch
>
>    /kris
>
>  
>



Reply via email to