diff --git a/aw/cxx/distributed/distributed_agent.cpp b/aw/cxx/distributed/distributed_agent.cpp index a8d5a5e38f80ddc568018331e582a06a1e651fd4..400847ee1ac8ecf426e200949fb36039708bff44 100644 --- a/aw/cxx/distributed/distributed_agent.cpp +++ b/aw/cxx/distributed/distributed_agent.cpp @@ -147,7 +147,11 @@ int DistributedAgent::DoCmdServer(int serverSockFd) HiLog::Info(DistributedAgent::LABEL, "accept testcase runner IP:%s port:%d \n", inet_ntoa(clientAddr.sin_addr), clientAddr.sin_port); while (mbStop_ != true) { - memset_s(buff, MAX_BUFF_LEN, 0, MAX_BUFF_LEN); + errno_t ret = EOK; + ret = memset_s(buff, sizeof(buff), 0, MAX_BUFF_LEN); + if (ret != EOK) { + return -1; + } // every cmd length less than MAX_BUFF_LEN bytes; int cmdLen = recv(clientSockFd_, buff, DST_COMMAND_HEAD_LEN, 0); if (static_cast(cmdLen) < DST_COMMAND_HEAD_LEN) { @@ -190,7 +194,10 @@ int DistributedAgent::DoCmdServer(int serverSockFd) } pszEValue[eValueLen] = '\0'; int nresult = OnProcessCmd(pAlignmentCmd, cmdLen, pszEValue, eValueLen); - (void)memset_s(returnValue, MAX_BUFF_LEN, 0, MAX_BUFF_LEN); + ret = memset_s(returnValue, sizeof(returnValue), 0, MAX_BUFF_LEN); + if (ret != EOK) { + return -1; + } auto pclinereturn = reinterpret_cast(returnValue); pclinereturn->no = pcline->no; pclinereturn->cmdTestType = htons(DST_COMMAND_CALL); @@ -205,8 +212,12 @@ int DistributedAgent::DoCmdServer(int serverSockFd) break; } case DST_COMMAND_MSG: { + errno_t ret = EOK; int nresult = 0; - (void)memset_s(returnValue, MAX_BUFF_LEN, 0, MAX_BUFF_LEN); + ret = memset_s(returnValue, sizeof(returnValue), 0, MAX_BUFF_LEN); + if (ret != EOK) { + return -1; + } auto pclinereturn = reinterpret_cast(returnValue); pclinereturn->no = pcline->no; pclinereturn->cmdTestType = htons(DST_COMMAND_MSG); @@ -246,7 +257,11 @@ void DistributedAgent::OnNotifyImf(DistributedMsg *pcline) char alignmentCmd[DistributedAgent::CMD_LENGTH]; char szMsg[MAX_BUFF_LEN / DistributedAgent::HALF_NUM - DistributedAgent::CMD_LENGTH]; int cmdNo = 0; - (void)memset_s(alignmentCmd, DistributedAgent::CMD_LENGTH, 0, DistributedAgent::CMD_LENGTH); + errno_t ret = EOK; + ret = memset_s(alignmentCmd, sizeof(alignmentCmd), 0, DistributedAgent::CMD_LENGTH); + if (ret != EOK) { + return; + } (void)memset_s(szMsg, MAX_BUFF_LEN / DistributedAgent::HALF_NUM - DistributedAgent::CMD_LENGTH, 0, MAX_BUFF_LEN / DistributedAgent::HALF_NUM - DistributedAgent::CMD_LENGTH); @@ -259,7 +274,7 @@ void DistributedAgent::OnNotifyImf(DistributedMsg *pcline) HiLog::Error(DistributedAgent::LABEL, "error command.\n"); } else { errno_t ret = EOK; - ret = memcpy_s(alignmentCmd, DistributedAgent::CMD_LENGTH, pcline->alignmentCmd, cmdNo); + ret = memcpy_s(alignmentCmd, sizeof(alignmentCmd), pcline->alignmentCmd, cmdNo); if (ret != EOK) { return; } @@ -282,7 +297,7 @@ void DistributedAgent::OnNotifyImf(DistributedMsg *pcline) * returnbuflen: max length of strReturnValue * return : real length of strReturnValue filled */ -int DistributedAgent::OnProcessMsg(const std::string &strMsg, int len, +int DistributedAgent::OnProcessMsg(const std::string &strMsg, int msgLen, std::string &strReturnValue, int returnBufLen) { // default test code @@ -310,8 +325,11 @@ int DistributedAgent::OnProcessCmd(const std::string &strCommand, int cmdLen, char alignmentCmd[DistributedAgent::CMD_LENGTH]; char szArgs[MAX_BUFF_LEN / DistributedAgent::HALF_NUM - DistributedAgent::CMD_LENGTH]; int cmdNo = 0; - - (void)memset_s(alignmentCmd, DistributedAgent::CMD_LENGTH, 0, DistributedAgent::CMD_LENGTH); + errno_t ret = EOK; + ret = memset_s(alignmentCmd, sizeof(alignmentCmd), 0, DistributedAgent::CMD_LENGTH); + if (ret != EOK) { + return -1; + } (void)memset_s(szArgs, MAX_BUFF_LEN / DistributedAgent::HALF_NUM - DistributedAgent::CMD_LENGTH, 0, MAX_BUFF_LEN / DistributedAgent::HALF_NUM - DistributedAgent::CMD_LENGTH); @@ -327,7 +345,7 @@ int DistributedAgent::OnProcessCmd(const std::string &strCommand, int cmdLen, } errno_t ret = EOK; - ret = memcpy_s(alignmentCmd, DistributedAgent::CMD_LENGTH, strCommand.c_str(), cmdNo); + ret = memcpy_s(alignmentCmd, sizeof(alignmentCmd), strCommand.c_str(), cmdNo); if (ret != EOK) { return -1; } diff --git a/aw/cxx/distributed/distributed_major.cpp b/aw/cxx/distributed/distributed_major.cpp index 87a243e9c16dbdfc1baba632d892b07d7ed51a4a..1638b826dc54405cdc1e42f0bce9d6092b66319f 100644 --- a/aw/cxx/distributed/distributed_major.cpp +++ b/aw/cxx/distributed/distributed_major.cpp @@ -48,9 +48,9 @@ DistributeTestEnvironment::DistributeTestEnvironment() : serverPort_(DEFAULT_AGE { } -DistributeTestEnvironment::DistributeTestEnvironment(std::string cfgInfo) : serverPort_(DEFAULT_AGENT_PORT) +DistributeTestEnvironment::DistributeTestEnvironment(std::string cfgFile) : serverPort_(DEFAULT_AGENT_PORT) { - Init(cfgInfo); + Init(cfgFile); } void DistributeTestEnvironment::Init(std::string fileName) @@ -251,8 +251,10 @@ bool DistributeTestEnvironment::RunTestCmd(size_t devNo, const std::string &strC bool breturn = false; size_t lenptr = 0; errno_t ret = EOK; - (void)memset_s(szbuf, MAX_BUFF_LEN, 0, MAX_BUFF_LEN); - + ret = memset_s(szbuf, sizeof(szbuf), 0, MAX_BUFF_LEN); + if (ret != EOK) { + return breturn; + } // add 2 '\0' size_t rlen = cmdLen + expectValueLen + DST_COMMAND_HEAD_LEN + sizeof(int)*HALF_BUF_LEN + HALF_BUF_LEN; if (rlen <= MAX_BUFF_LEN) { @@ -439,13 +441,13 @@ int DistributeTest::GetReturnVal() * param : * devNo: the serial number of agent device. * msg : message of the testcase sent to the agent - * msgLen: length of strMsg + * len: length of strMsg * return : if false is return, send operation failed. */ -bool DistributeTest::SendMessage(AGENT_NO devNo, const std::string &msg, int msgLen) +bool DistributeTest::SendMessage(AGENT_NO devNo, const std::string &msg, int len) { if (g_pDistributetestEnv != nullptr) { - return g_pDistributetestEnv->SendMessage(devNo, msg, msgLen, + return g_pDistributetestEnv->SendMessage(devNo, msg, len, [&](const std::string &szreturnbuf, int rlen)->bool { HiLog::Info(LABEL, "onprocessmsg len :%d.", rlen); return OnMsgProc(szreturnbuf, rlen); @@ -460,23 +462,23 @@ bool DistributeTest::SendMessage(AGENT_NO devNo, const std::string &msg, int msg * param : * devNo: the serial number of agent device. * msg : message of the testcase sent to the agent - * msgLen: length of message + * len: length of message * onProcessReturnMsg: callback function that handles the agent device return message and real * length of return value * return : if false is return, send operation failed. */ -bool DistributeTest::SendMessage(AGENT_NO devNo, const std::string &msg, int msgLen, +bool DistributeTest::SendMessage(AGENT_NO devNo, const std::string &msg, int len, std::function onProcessReturnMsg) { if (g_pDistributetestEnv != nullptr) { - return g_pDistributetestEnv->SendMessage(devNo, msg, msgLen, onProcessReturnMsg); + return g_pDistributetestEnv->SendMessage(devNo, msg, len, onProcessReturnMsg); } return false; } -bool DistributeTest::OnMsgProc(const std::string &strBuf, int len) +bool DistributeTest::OnMsgProc(const std::string &szbuf, int len) { - return (strBuf == "") ? false : true; + return (szbuf == "") ? false : true; } /* diff --git a/examples/calculator/src/calculator.cpp b/examples/calculator/src/calculator.cpp index 9b504d69bae9bb8e4aae2a9989089e473f4c8d5c..e71a031359850268aa3fd3ce1dd775ec047a9471 100644 --- a/examples/calculator/src/calculator.cpp +++ b/examples/calculator/src/calculator.cpp @@ -33,7 +33,10 @@ int Sub(int e1, int e2) int Mul(int e1, int e2) { int result = e1 * e2; - if (!e1 || (result / e1) != e2) { + if (e1 == 0) { + return 0; + } + if ((result / e1) != e2) { result = -1; } return result; diff --git a/examples/distributedb/test/distributedtest/common/distribute_demo_agent.cpp b/examples/distributedb/test/distributedtest/common/distribute_demo_agent.cpp index 95dab2bc559b84e81ae266e7a1548826e1161287..478c6f82d15b43760523f4a9ff9c614a87a4a868 100644 --- a/examples/distributedb/test/distributedtest/common/distribute_demo_agent.cpp +++ b/examples/distributedb/test/distributedtest/common/distribute_demo_agent.cpp @@ -104,27 +104,27 @@ bool DistributeDemoAgent::TearDown() // The entry of handlingthe major test case message int DistributeDemoAgent::OnProcessMsg(const std::string &strMsg, int len, - std::string &strReturnValue, int returnValueLen) + std::string &strReturnValue, int returnBufLen) { int nret = 0; std::string returnStr = "agent return message."; if ((len > CMD_LEN) && (strMsg.find("\0\1\0\1") == 1)) { - for (int i = 0; i < returnValueLen; i++) { + for (int i = 0; i < returnBufLen; i++) { strReturnValue += std::to_string((i + 1) % RETURN_HALF); } - nret = returnValueLen; + nret = returnBufLen; } else { HiLog::Info(LABEL, "receive message=%s.", strMsg.c_str()); if (strncmp(strMsg.c_str(), "recall", MSG_CALL_LEN) == 0) { returnStr = "I get recall message."; int ptrlen = returnStr.size(); - if (ptrlen > returnValueLen) { - ptrlen = returnValueLen - 1; + if (ptrlen > returnBufLen) { + ptrlen = returnBufLen - 1; } strReturnValue = returnStr; nret = ptrlen; } else { - nret = DistributedAgent::OnProcessMsg(strMsg, len, strReturnValue, returnValueLen); + nret = DistributedAgent::OnProcessMsg(strMsg, len, strReturnValue, returnBufLen); } } return nret; @@ -186,8 +186,18 @@ int DistributeDemoAgent::AddTwoValue(const std::string &strArgs, int argsLen, co int val1 = 0; int val2 = 0; int val3 = 0; - sscanf_s(strArgs.c_str(), "%d %d", &val1, &val2); - sscanf_s(strExpectValue.c_str(), "%d", &val3); + int ret1; + int ret2; + ret1 = sscanf_s(strArgs.c_str(), "%d %d", &val1, &val2); + if (ret1 <=0 || ret1 == 1) { + HiLog::Error(LABEL, "sscanf_s failed. ret1 != 2"); + return -1; + } + ret2 = sscanf_s(strExpectValue.c_str(), "%d", &val3); + if (ret2 != 1) { + HiLog::Error(LABEL, "sscanf_s failed. ret2 != 1"); + return -1; + } EXPECT_TRUE(val3 == (val1 + val2)); return val1 + val2; }