🐞 fix(quic version len): 增加包长判断,避免读越界
This commit is contained in:
@@ -321,6 +321,8 @@ extern "C" long long QUIC_FLAG_CHANGE(char* flag_str)
|
|||||||
|
|
||||||
extern "C" void QUIC_DESTROY(void)
|
extern "C" void QUIC_DESTROY(void)
|
||||||
{
|
{
|
||||||
|
MESA_destroy_runtime_log_handle(g_quic_param.logger);
|
||||||
|
g_quic_param.logger = NULL;
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
enum QUIC_VERSION quic_version=QUIC_VERSION_UNKNOWN;
|
||||||
unsigned char frame_type=(unsigned char)(payload[0]);
|
unsigned char frame_type=(unsigned char)(payload[0]);
|
||||||
|
|
||||||
|
if(payload_len<=4)
|
||||||
|
{
|
||||||
|
return QUIC_VERSION_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
if(frame_type&QUIC_LONG_HEADER_MASK)
|
if(frame_type&QUIC_LONG_HEADER_MASK)
|
||||||
{
|
{
|
||||||
quic_version=identify_quic_version(payload, payload_len, payload_offset);
|
quic_version=identify_quic_version(payload, payload_len, payload_offset);
|
||||||
|
|||||||
Reference in New Issue
Block a user