diff options
| author | yangwei <[email protected]> | 2023-07-26 19:20:58 +0800 |
|---|---|---|
| committer | yangwei <[email protected]> | 2023-07-26 19:21:14 +0800 |
| commit | 479fd1a771464ca8dba48f79e3f1fae306231cc7 (patch) | |
| tree | 7fd7cbdc75fc4d6dc12f84515e1a8984a8f23c9e /src | |
| parent | bfeae04470ce4c015ae6d5c07f0a442f8526a5ce (diff) | |
🐞 fix(quic version len): 增加包长判断,避免读越界
Diffstat (limited to 'src')
| -rw-r--r-- | src/quic_entry.cpp | 2 | ||||
| -rw-r--r-- | src/quic_process.cpp | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/quic_entry.cpp b/src/quic_entry.cpp index 7fbed33..9fee0d1 100644 --- a/src/quic_entry.cpp +++ b/src/quic_entry.cpp @@ -321,6 +321,8 @@ extern "C" long long QUIC_FLAG_CHANGE(char* flag_str) extern "C" void QUIC_DESTROY(void) { + MESA_destroy_runtime_log_handle(g_quic_param.logger); + g_quic_param.logger = NULL; return ; } diff --git a/src/quic_process.cpp b/src/quic_process.cpp index 711cf15..fe86a46 100644 --- a/src/quic_process.cpp +++ b/src/quic_process.cpp @@ -737,6 +737,11 @@ enum QUIC_VERSION is_quic_protocol(const char *payload, int payload_len, int *pa enum QUIC_VERSION quic_version=QUIC_VERSION_UNKNOWN; unsigned char frame_type=(unsigned char)(payload[0]); + if(payload_len<=4) + { + return QUIC_VERSION_UNKNOWN; + } + if(frame_type&QUIC_LONG_HEADER_MASK) { quic_version=identify_quic_version(payload, payload_len, payload_offset); |
