]> granicus.if.org Git - php/commitdiff
Fixed bug #25218 ("deflate" compressed pages had a gzip header, which
authorStefan Roehrich <sr@php.net>
Sun, 24 Aug 2003 13:59:34 +0000 (13:59 +0000)
committerStefan Roehrich <sr@php.net>
Sun, 24 Aug 2003 13:59:34 +0000 (13:59 +0000)
should only be sent with "gzip" compressed pages).

NEWS
ext/zlib/zlib.c

diff --git a/NEWS b/NEWS
index c59aa8857599f8688d51614666186956db0a6090..a3deb63ac566d02f6ec9178fa4aca8df72e924c8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,7 @@ PHP                                                                        NEWS
 - Fixed bug #19859 (allow fast_call_user_function to support __call). 
   (Stanislav)
 - Fixed bug #17988 (strtotime failed to parse postgresql timestamp). (Derick)
+- Fixed bug #25218 ("deflate" compressed pages had a gzip header). (Stefan)
 
 29 Jun 2003, PHP 5 Beta 1 
 - Removed the bundled MySQL client library. (Sterling)
index 752601414e62b86ec152407b19a25ba7c8ca1796..e700270cb27b43eb5e9d919b0ca79099a1031586 100644 (file)
@@ -702,7 +702,7 @@ static int php_do_deflate(uint str_length, Bytef **p_buffer, uint *p_buffer_len,
        Bytef *buffer;
        uInt prev_outlen, outlen;
        int err;
-       int start_offset = (do_start ? 10 : 0);
+       int start_offset = ((do_start && ZLIBG(compression_coding) == CODING_GZIP) ? 10 : 0);
        int end_offset = (do_end ? 8 : 0);
 
        outlen = (uint) (sizeof(char) * (str_length * 1.001f + 12) + 1); /* leave some room for a trailing \0 */
@@ -776,14 +776,14 @@ static int php_deflate_string(const char *str, uint str_length, char **newstr, u
        ZLIBG(stream).next_in = (Bytef *) str;
        ZLIBG(stream).avail_in = (uInt) str_length;
 
-       if (ZLIBG(compression_coding) == 1) {
+       if (ZLIBG(compression_coding) == CODING_GZIP) {
                ZLIBG(crc) = crc32(ZLIBG(crc), (const Bytef *) str, str_length);
        }
 
        err = php_do_deflate(str_length, (Bytef **) newstr, new_length, do_start, do_end TSRMLS_CC);
        /* TODO: error handling (err may be Z_STREAM_ERROR, Z_BUF_ERROR, ?) */
 
-       if (do_start) {
+       if (do_start && ZLIBG(compression_coding) == CODING_GZIP) {
                /* Write a very simple .gz header: */
                (*newstr)[0] = gz_magic[0];
                (*newstr)[1] = gz_magic[1];
@@ -793,7 +793,7 @@ static int php_deflate_string(const char *str, uint str_length, char **newstr, u
                *new_length += 10;
        }
        if (do_end) {
-               if (ZLIBG(compression_coding) == 1) {
+               if (ZLIBG(compression_coding) == CODING_GZIP) {
                        char *trailer = (*newstr) + (*new_length);
 
                        /* write crc & stream.total_in in LSB order */