BUG/MEDIUM: mux-quic: Stop zero-copy FF during nego if input is not empty

When the producer negociate with the QUIC mux to perform a zero-copy
fast-forward, data in the input buffer are first transferred in the H3
buffer. However, after the transfer, if the input buffer is not empty, the
data fast-forwarding must be stopped. In this case, qmux_nego_ff() must
return 0.

No backport needed.
This commit is contained in:
Christopher Faulet 2023-11-28 22:24:45 +01:00
parent a053512a7f
commit 61749d7cb7

View File

@ -2843,8 +2843,10 @@ static size_t qmux_nego_ff(struct stconn *sc, struct buffer *input, size_t count
b_sub(qcs->sd->iobuf.buf, qcs->sd->iobuf.offset);
/* Cannot forward more data, wait for room */
if (b_data(input))
if (b_data(input)) {
ret = 0;
goto end;
}
}
ret -= qcs->sd->iobuf.data;