mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
fix memory leak when gquic50 decrypt packet (#430)
* fix memory leak when gquic50 decrypt packet fix a suspicious memory leak in gquic and iquic * drop some redundant checking. Co-authored-by: linsc <linsc@wangus.com>
This commit is contained in:
parent
755143fe4a
commit
1a4edfcdc6
2 changed files with 4 additions and 5 deletions
|
@ -2252,7 +2252,7 @@ iquic_esf_decrypt_packet (enc_session_t *enc_session_p,
|
|||
* These cipher suites have a 16-byte authentication tag and
|
||||
* produce an output 16 bytes larger than their input.
|
||||
*/
|
||||
const size_t dst_sz = packet_in->pi_data_sz - 16;
|
||||
const size_t dst_sz = packet_in->pi_data_sz - IQUIC_TAG_LEN;
|
||||
unsigned char new_secret[EVP_MAX_KEY_LENGTH];
|
||||
struct crypto_ctx crypto_ctx_buf;
|
||||
char secret_str[EVP_MAX_KEY_LENGTH * 2 + 1];
|
||||
|
@ -2450,10 +2450,10 @@ iquic_esf_decrypt_packet (enc_session_t *enc_session_p,
|
|||
enc_sess->esi_key_phase = key_phase;
|
||||
}
|
||||
|
||||
packet_in->pi_data_sz = packet_in->pi_header_sz + out_sz;
|
||||
if (packet_in->pi_flags & PI_OWN_DATA)
|
||||
lsquic_mm_put_packet_in_buf(&enpub->enp_mm, packet_in->pi_data,
|
||||
packet_in->pi_data_sz);
|
||||
packet_in->pi_data_sz = packet_in->pi_header_sz + out_sz;
|
||||
packet_in->pi_data = dst;
|
||||
packet_in->pi_flags |= PI_OWN_DATA | PI_DECRYPTED
|
||||
| (enc_level << PIBIT_ENC_LEV_SHIFT);
|
||||
|
|
|
@ -4179,7 +4179,7 @@ gquic2_esf_decrypt_packet (enc_session_t *enc_session_p,
|
|||
lsquic_packno_t packno;
|
||||
size_t out_sz;
|
||||
enum dec_packin dec_packin;
|
||||
const size_t dst_sz = packet_in->pi_data_sz;
|
||||
const size_t dst_sz = packet_in->pi_data_sz - IQUIC_TAG_LEN;
|
||||
char errbuf[ERR_ERROR_STRING_BUF_LEN];
|
||||
|
||||
dst = lsquic_mm_get_packet_in_buf(&enpub->enp_mm, dst_sz);
|
||||
|
@ -4270,11 +4270,10 @@ gquic2_esf_decrypt_packet (enc_session_t *enc_session_p,
|
|||
}
|
||||
|
||||
/* Bits 2 and 3 are not set and don't need to be checked in gQUIC */
|
||||
|
||||
packet_in->pi_data_sz = packet_in->pi_header_sz + out_sz;
|
||||
if (packet_in->pi_flags & PI_OWN_DATA)
|
||||
lsquic_mm_put_packet_in_buf(&enpub->enp_mm, packet_in->pi_data,
|
||||
packet_in->pi_data_sz);
|
||||
packet_in->pi_data_sz = packet_in->pi_header_sz + out_sz;
|
||||
packet_in->pi_data = dst;
|
||||
packet_in->pi_flags |= PI_OWN_DATA | PI_DECRYPTED
|
||||
| (gel2el[gel] << PIBIT_ENC_LEV_SHIFT);
|
||||
|
|
Loading…
Reference in a new issue