summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2023-07-26 19:20:58 +0800
committeryangwei <[email protected]>2023-07-26 19:21:14 +0800
commit479fd1a771464ca8dba48f79e3f1fae306231cc7 (patch)
tree7fd7cbdc75fc4d6dc12f84515e1a8984a8f23c9e
parentbfeae04470ce4c015ae6d5c07f0a442f8526a5ce (diff)
🐞 fix(quic version len): 增加包长判断,避免读越界
-rw-r--r--src/quic_entry.cpp2
-rw-r--r--src/quic_process.cpp5
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);