From bc24daedc3685a9cd367209d9c144dabf768f9d4 Mon Sep 17 00:00:00 2001 From: Stefan Roehrich Date: Thu, 28 Aug 2003 16:05:17 +0000 Subject: [PATCH] MFH: Fixed bug #25218 ("deflate" compressed pages had a gzip header, which should only be sent with "gzip" compressed pages). --- NEWS | 1 + ext/zlib/zlib.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 390155006d..cb2a46a420 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ PHP 4 NEWS - Fixed bug #25239 (ftp_fopen_wrapper not RFC compliant). (Sara) - Fixed bug #25166 (WDDX serializer handler missing in win32). (Jani) - Fixed bug #25109 (Possible crash when fetching field names in pgsql). (Ilia) +- Fixed bug #25218 ("deflate" compressed pages had a gzip header). (Stefan) 25 Aug 2003, Version 4.3.3 - Upgraded the bundled Expat library to version 1.95.6. (Jani) diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index 99bc86076b..21aa02876b 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -687,7 +687,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 */ @@ -764,14 +764,14 @@ int php_deflate_string(const char *str, uint str_length, char **newstr, uint *ne 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]; @@ -781,7 +781,7 @@ int php_deflate_string(const char *str, uint str_length, char **newstr, uint *ne *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 */ -- 2.50.1