altarch-user / rpms / httpd

Forked from rpms/httpd 2 years ago
Clone
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;