]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: compression/htx: Don't add the last block of data if it is empty
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 21 Dec 2018 14:10:25 +0000 (15:10 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 21 Dec 2018 14:33:26 +0000 (15:33 +0100)
In HTX, when the compression filter analyze the EOM, it flushes the compression
context and add the last block of compressed data. But, this block can be
empty. In this case, we must ignore it.

src/flt_http_comp.c

index ce0dba17c0a6212ade39781aae855c96dde8b004..380366b0665899c6da8dc9e087605b522c489597 100644 (file)
@@ -255,10 +255,12 @@ comp_http_payload(struct stream *s, struct filter *filter, struct http_msg *msg,
                                        }
                                        if (htx_compression_buffer_end(st, &trash, 1) < 0)
                                                goto error;
-                                       blk = htx_add_data_before(htx, blk, ist2(b_head(&trash), b_data(&trash)));
-                                       if (!blk)
-                                               goto error;
-                                       to_forward += b_data(&trash);
+                                       if (b_data(&trash)) {
+                                               blk = htx_add_data_before(htx, blk, ist2(b_head(&trash), b_data(&trash)));
+                                               if (!blk)
+                                                       goto error;
+                                               to_forward += b_data(&trash);
+                                       }
                                        msg->flags &= ~HTTP_MSGF_COMPRESSING;
                                        /* We let the mux add last empty chunk and empty trailers */
                                }