From 5073e412856c426dd5a0409d91208b6432486c72 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Sat, 9 May 2026 03:33:20 +0000 Subject: [PATCH] Potential fix for code scanning alert no. 43 Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- .../ProtocolModule_Parse/ProtocolModule_Parse.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.cpp b/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.cpp index 48993cb..49ef3c1 100644 --- a/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.cpp +++ b/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Parse/ProtocolModule_Parse.cpp @@ -55,14 +55,18 @@ CProtocolModule_Parse::~CProtocolModule_Parse() *********************************************************************/ bool CProtocolModule_Parse::ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer, int nMsgLen, XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, XCHAR* ptszMsgBuffer, int* pInt_MsgLen) { + // 初始化错误状态;本函数任何失败路径都会设置统一错误码后返回 false。 Protocol_IsErrorOccur = false; + // 基础参数校验:输入缓冲区必须有效。 if (NULL == lpszMsgBuffer) { Protocol_IsErrorOccur = true; Protocol_dwErrorCode = ERROR_MQ_MODULE_PROTOCOL_PARAMENT; return false; } + + // 第一步:将 WebSocket 文本消息解析为 JSON 根对象。 Json::Value st_JsonRoot; JSONCPP_STRING st_JsonError; Json::CharReaderBuilder st_ReaderBuilder; @@ -75,6 +79,8 @@ bool CProtocolModule_Parse::ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer return false; } + // 第二步:提取公共协议头字段(按字段是否存在进行兼容性读取)。 + // pSt_ProtocolHdr 允许为空;为空时只执行消息体解析流程。 if (NULL != pSt_ProtocolHdr) { if (!st_JsonRoot["unOperatorType"].isNull()) @@ -103,6 +109,7 @@ bool CProtocolModule_Parse::ProtocolModule_Parse_Websocket(LPCXSTR lpszMsgBuffer } } + // 第三步:初始化消息体解析上下文,后续根据操作类型解析具体业务字段。 int nPos = 0; *pInt_MsgLen = 0; XENGINE_PROTOCOL_XMQ st_MQProtocol;