BUG/MEDIUM: compression: Use the right buffer pointers to compress input data

A bug was introduced when the buffers API was refactored. It was when wrapping
input data were compressed. the pointer b_peek(in, 0) was used instead of
"b_orig(in)". b_peek(in, 0) is in fact the same as b_head(in).
This commit is contained in:
Christopher Faulet 2018-12-17 12:02:57 +01:00 committed by Willy Tarreau
parent 2a7d6502bf
commit 9666720c83

View File

@ -1074,10 +1074,10 @@ http_compression_buffer_add_data(struct comp_state *st, struct buffer *in,
block2 = data_process_len - block1;
/* compressors return < 0 upon error or the amount of bytes read */
consumed_data = st->comp_algo->add_data(st->comp_ctx, b_head(in) + in_out, block1, out);
consumed_data = st->comp_algo->add_data(st->comp_ctx, b_peek(in, in_out), block1, out);
if (consumed_data != block1 || !block2)
goto end;
consumed_data = st->comp_algo->add_data(st->comp_ctx, b_peek(in, 0), block2, out);
consumed_data = st->comp_algo->add_data(st->comp_ctx, b_orig(in), block2, out);
if (consumed_data < 0)
goto end;
consumed_data += block1;