Blame SOURCES/httpd-2.4.6-r1604460.patch
|
|
0943f8 |
--- a/modules/filters/mod_deflate.c 2014/02/26 15:24:07 1572091
|
|
|
0943f8 |
+++ b/modules/filters/mod_deflate.c 2014/02/26 15:30:25 1572092
|
|
|
0943f8 |
@@ -1125,7 +1125,8 @@
|
|
|
0943f8 |
}
|
|
|
0943f8 |
ctx->stream.next_in += 4;
|
|
|
0943f8 |
compLen = getLong(ctx->stream.next_in);
|
|
|
0943f8 |
- if (ctx->stream.total_out != compLen) {
|
|
|
0943f8 |
+ /* gzip stores original size only as 4 byte value */
|
|
|
0943f8 |
+ if ((ctx->stream.total_out & 0xFFFFFFFF) != compLen) {
|
|
|
0943f8 |
inflateEnd(&ctx->stream);
|
|
|
0943f8 |
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(01395)
|
|
|
0943f8 |
"Zlib: Length %ld of inflated data does "
|
|
|
0943f8 |
@@ -1322,7 +1323,8 @@
|
|
|
0943f8 |
}
|
|
|
0943f8 |
ctx->validation_buffer += VALIDATION_SIZE / 2;
|
|
|
0943f8 |
compLen = getLong(ctx->validation_buffer);
|
|
|
0943f8 |
- if (ctx->stream.total_out != compLen) {
|
|
|
0943f8 |
+ /* gzip stores original size only as 4 byte value */
|
|
|
0943f8 |
+ if ((ctx->stream.total_out & 0xFFFFFFFF) != compLen) {
|
|
|
0943f8 |
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01400)
|
|
|
0943f8 |
"Zlib: Length of inflated stream invalid");
|
|
|
0943f8 |
return APR_EGENERAL;
|