deps: update ngtcp2 to 1.9.1 · nodejs/node@17b6931
@@ -5322,35 +5322,28 @@ int ngtcp2_conn_detect_lost_pkt(ngtcp2_conn *conn, ngtcp2_pktns *pktns,
53225322 * conn_recv_ack processes received ACK frame |fr|. |pkt_ts| is the
53235323 * timestamp when packet is received. |ts| should be the current
53245324 * time. Usually they are the same, but for buffered packets,
5325- * |pkt_ts| would be earlier than |ts|.
5325+ * |pkt_ts| would be earlier than |ts|. This function needs to be
5326+ * called after |fr| is validated by ngtcp2_pkt_validate_ack.
53265327 *
53275328 * This function returns 0 if it succeeds, or one of the following
53285329 * negative error codes:
53295330 *
53305331 * NGTCP2_ERR_NOMEM
53315332 * Out of memory
5332- * NGTCP2_ERR_ACK_FRAME
5333- * ACK frame is malformed.
53345333 * NGTCP2_ERR_PROTO
53355334 * |fr| acknowledges a packet this endpoint has not sent.
53365335 * NGTCP2_ERR_CALLBACK_FAILURE
53375336 * User callback failed.
53385337 */
53395338static int conn_recv_ack(ngtcp2_conn *conn, ngtcp2_pktns *pktns, ngtcp2_ack *fr,
53405339ngtcp2_tstamp pkt_ts, ngtcp2_tstamp ts) {
5341-int rv;
53425340ngtcp2_ssize num_acked;
53435341ngtcp2_conn_stat *cstat = &conn->cstat;
5344534253455343if (pktns->tx.last_pkt_num < fr->largest_ack) {
53465344return NGTCP2_ERR_PROTO;
53475345 }
534853465349-rv = ngtcp2_pkt_validate_ack(fr, conn->local.settings.initial_pkt_num);
5350-if (rv != 0) {
5351-return rv;
5352- }
5353-53545347ngtcp2_acktr_recv_ack(&pktns->acktr, fr);
5355534853565349num_acked =
@@ -6561,6 +6554,13 @@ conn_recv_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_path *path,
65616554case NGTCP2_FRAME_ACK_ECN:
65626555fr->ack.ack_delay = 0;
65636556fr->ack.ack_delay_unscaled = 0;
6557+6558+rv =
6559+ngtcp2_pkt_validate_ack(&fr->ack, conn->local.settings.initial_pkt_num);
6560+if (rv != 0) {
6561+return rv;
6562+ }
6563+65646564break;
65656565 }
65666566@@ -8715,6 +8715,13 @@ conn_recv_delayed_handshake_pkt(ngtcp2_conn *conn, const ngtcp2_pkt_info *pi,
87158715case NGTCP2_FRAME_ACK_ECN:
87168716fr->ack.ack_delay = 0;
87178717fr->ack.ack_delay_unscaled = 0;
8718+8719+rv =
8720+ngtcp2_pkt_validate_ack(&fr->ack, conn->local.settings.initial_pkt_num);
8721+if (rv != 0) {
8722+return rv;
8723+ }
8724+87188725break;
87198726 }
87208727@@ -9200,6 +9207,13 @@ static ngtcp2_ssize conn_recv_pkt(ngtcp2_conn *conn, const ngtcp2_path *path,
92009207assert(conn->remote.transport_params);
92019208assign_recved_ack_delay_unscaled(
92029209&fr->ack, conn->remote.transport_params->ack_delay_exponent);
9210+9211+rv =
9212+ngtcp2_pkt_validate_ack(&fr->ack, conn->local.settings.initial_pkt_num);
9213+if (rv != 0) {
9214+return rv;
9215+ }
9216+92039217break;
92049218 }
92059219