diff --git a/src/quic_conn.c b/src/quic_conn.c index 8623afefb..6fd8412f2 100644 --- a/src/quic_conn.c +++ b/src/quic_conn.c @@ -1898,6 +1898,7 @@ static inline int qc_requeue_nacked_pkt_tx_frms(struct quic_conn *qc, } else if (strm_frm->offset.key < stream_desc->ack_offset) { strm_frm->offset.key = stream_desc->ack_offset; + strm_frm->len -= stream_desc->ack_offset - strm_frm->offset.key; TRACE_DEVEL("updated partially acked frame", QUIC_EV_CONN_PRSAFRM, qc, frm); } @@ -2553,6 +2554,7 @@ static void qc_dup_pkt_frms(struct quic_conn *qc, } else if (strm_frm->offset.key < stream_desc->ack_offset) { strm_frm->offset.key = stream_desc->ack_offset; + strm_frm->len -= stream_desc->ack_offset - strm_frm->offset.key; TRACE_DEVEL("updated partially acked frame", QUIC_EV_CONN_PRSAFRM, qc, frm); } @@ -7288,6 +7290,7 @@ static inline int qc_build_frms(struct list *outlist, struct list *inlist, } else if (strm->offset.key < stream_desc->ack_offset) { strm->offset.key = stream_desc->ack_offset; + strm->len -= stream_desc->ack_offset - strm->offset.key; TRACE_DEVEL("updated partially acked frame", QUIC_EV_CONN_PRSAFRM, qc, cf); }