mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
Release 2.8.5
- [BUGFIX] Fix unintended sign extension when removing header protection.
This commit is contained in:
parent
747be414e2
commit
72bbf1fbee
5 changed files with 12 additions and 11 deletions
|
@ -1,5 +1,5 @@
|
|||
2020-01-06
|
||||
- 2.8.4
|
||||
- 2.8.5
|
||||
- [HTTP3] Verify number of bytes in incoming DATA frames against
|
||||
content-length.
|
||||
- [HTTP3] Stop issuing streams credits if peer stops opening QPACK
|
||||
|
@ -8,6 +8,7 @@
|
|||
Considerations in the QPACK draft.
|
||||
- [BUGFIX] Mini conn: don't shorten max packet size for Q050 and later.
|
||||
- [BUGFIX] Init IETF connection flow controller using correct setting.
|
||||
- [BUGFIX] Fix unintended sign extension when removing header protection.
|
||||
- Code cleanup and minor fixes.
|
||||
|
||||
2019-12-30
|
||||
|
|
|
@ -25,7 +25,7 @@ extern "C" {
|
|||
|
||||
#define LSQUIC_MAJOR_VERSION 2
|
||||
#define LSQUIC_MINOR_VERSION 8
|
||||
#define LSQUIC_PATCH_VERSION 4
|
||||
#define LSQUIC_PATCH_VERSION 5
|
||||
|
||||
/**
|
||||
* Engine flags:
|
||||
|
|
|
@ -403,17 +403,17 @@ strip_hp (struct enc_sess_iquic *enc_sess,
|
|||
/* fall-through */
|
||||
case 3:
|
||||
dst[packno_off + 2] ^= mask[3];
|
||||
packno |= dst[packno_off + 2] << shift;
|
||||
packno |= (unsigned) dst[packno_off + 2] << shift;
|
||||
shift += 8;
|
||||
/* fall-through */
|
||||
case 2:
|
||||
dst[packno_off + 1] ^= mask[2];
|
||||
packno |= dst[packno_off + 1] << shift;
|
||||
packno |= (unsigned) dst[packno_off + 1] << shift;
|
||||
shift += 8;
|
||||
/* fall-through */
|
||||
default:
|
||||
dst[packno_off + 0] ^= mask[1];
|
||||
packno |= dst[packno_off + 0] << shift;
|
||||
packno |= (unsigned) dst[packno_off + 0] << shift;
|
||||
shift += 8;
|
||||
}
|
||||
pns = lsquic_enclev2pns[hp->hp_enc_level];
|
||||
|
|
|
@ -4095,17 +4095,17 @@ gquic2_strip_hp (struct lsquic_enc_session *enc_session,
|
|||
/* fall-through */
|
||||
case 3:
|
||||
dst[packno_off + 2] ^= mask[3];
|
||||
packno |= dst[packno_off + 2] << shift;
|
||||
packno |= (unsigned) dst[packno_off + 2] << shift;
|
||||
shift += 8;
|
||||
/* fall-through */
|
||||
case 2:
|
||||
dst[packno_off + 1] ^= mask[2];
|
||||
packno |= dst[packno_off + 1] << shift;
|
||||
packno |= (unsigned) dst[packno_off + 1] << shift;
|
||||
shift += 8;
|
||||
/* fall-through */
|
||||
default:
|
||||
dst[packno_off + 0] ^= mask[1];
|
||||
packno |= dst[packno_off + 0] << shift;
|
||||
packno |= (unsigned) dst[packno_off + 0] << shift;
|
||||
shift += 8;
|
||||
}
|
||||
return decode_packno(enc_session->es_max_packno, packno, shift);
|
||||
|
|
|
@ -311,7 +311,7 @@ lsquic_prq_new_req (struct pr_queue *prq, enum packet_req_type type,
|
|||
|
||||
req->pr_type = type;
|
||||
req->pr_dcid = *dcid;
|
||||
if (lsquic_hash_find(prq->prq_reqs_hash, req, sizeof(req)))
|
||||
if (lsquic_hash_find(prq->prq_reqs_hash, req, sizeof(*req)))
|
||||
{
|
||||
LSQ_DEBUG("request for this DCID and type already exists");
|
||||
put_req(prq, req);
|
||||
|
@ -319,7 +319,7 @@ lsquic_prq_new_req (struct pr_queue *prq, enum packet_req_type type,
|
|||
}
|
||||
|
||||
req->pr_hash_el.qhe_flags = 0;
|
||||
if (!lsquic_hash_insert(prq->prq_reqs_hash, req, sizeof(req),
|
||||
if (!lsquic_hash_insert(prq->prq_reqs_hash, req, sizeof(*req),
|
||||
req, &req->pr_hash_el))
|
||||
{
|
||||
LSQ_DEBUG("could not insert req into hash");
|
||||
|
@ -332,7 +332,7 @@ lsquic_prq_new_req (struct pr_queue *prq, enum packet_req_type type,
|
|||
req->pr_version = version;
|
||||
req->pr_scid = *scid;
|
||||
req->pr_path.np_peer_ctx = peer_ctx;
|
||||
memcpy(NP_LOCAL_SA(&req->pr_path), local_addr,
|
||||
memcpy(req->pr_path.np_local_addr, local_addr,
|
||||
sizeof(req->pr_path.np_local_addr));
|
||||
memcpy(NP_PEER_SA(&req->pr_path), peer_addr,
|
||||
sizeof(req->pr_path.np_peer_addr));
|
||||
|
|
Loading…
Reference in a new issue