From d7c88780e1df54f34563d60bd7fa01011d2eef03 Mon Sep 17 00:00:00 2001 From: chenluhua1980 <Chenluhua@qq.com> Date: 星期一, 26 一月 2026 23:17:17 +0800 Subject: [PATCH] 1.CSVData.cpp 里 unserialize 用了 8*2、125*2,但 serialize 只写 8 + 125 字节。 m_svRawData.insert 的 end 指针是 pszBuffer + 125*2,没有用 index 计算,可能把无效区域一起拷进去。 一旦 size 实际是 133(不是 266),就会直接越界,堆会被破坏,m_svDatas.clear() 在销毁元素时崩。 --- SourceCode/Bond/Servo/RecipeManager.h | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-) diff --git a/SourceCode/Bond/Servo/RecipeManager.h b/SourceCode/Bond/Servo/RecipeManager.h index 2ffba09..70837c0 100644 --- a/SourceCode/Bond/Servo/RecipeManager.h +++ b/SourceCode/Bond/Servo/RecipeManager.h @@ -101,11 +101,13 @@ // 鏇存柊璁惧閰嶆柟ID锛堥�氳繃 PPID 鍜岃澶囧悕绉帮級 bool updateDeviceRecipeIDByName(const std::string& ppid, const std::string& strDeviceName, int nNewRecipeID); - bool addDeviceRecipe(const std::string& deviceName, int nRecipeID, const std::string& strRecipeName); - bool updateDeviceRecipe(const std::string& deviceName, int nRecipeID, const std::string& newName); - std::string getDeviceRecipeName(const std::string& deviceName, int nRecipeID); - bool deleteDeviceRecipe(const std::string& deviceName, int nRecipeID); - std::vector<std::pair<int, std::string>> getDeviceRecipes(const std::string& deviceName); + bool addDeviceRecipe(const std::string& strDeviceName, int nID, const std::string& strName, const std::string& strPara); + bool updateDeviceRecipeName(const std::string& strDeviceName, int nID, const std::string& strNewName); + bool updateDeviceRecipePara(const std::string& strDeviceName, int nID, const std::string& strNewPara); + std::string getDeviceRecipeName(const std::string& strDeviceName, int nID); + std::string getDeviceRecipePara(const std::string& strDeviceName, int nID); + bool deleteDeviceRecipe(const std::string& strDeviceName, int nID); + std::vector<std::pair<int, std::string>> getDeviceRecipes(const std::string& strDeviceName); // 妯℃嫙鎻掑叆鏁版嵁锛堟祴璇曠敤锛� void insertMockData(); -- Gitblit v1.9.3