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/BondEq/Model.cpp | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/BondEq/Model.cpp b/SourceCode/Bond/BondEq/Model.cpp
index 8a6cbec..a6f979f 100644
--- a/SourceCode/Bond/BondEq/Model.cpp
+++ b/SourceCode/Bond/BondEq/Model.cpp
@@ -175,6 +175,7 @@
}
};
m_bonder.setListener(bonderListener);
+ m_bonder.setModel(this);
m_bonder.init();
@@ -290,6 +291,39 @@
return 0;
}
+int CModel::notifyInt2(int code, int exCode, int exCode2)
+{
+ if (m_pObservableEmitter != NULL) {
+ IAny* pAny = RX_AllocaAny();
+ if (pAny != NULL) {
+ pAny->addRef();
+ pAny->setCode(code);
+ pAny->setIntValue("exCode", exCode);
+ pAny->setIntValue("exCode2", exCode2);
+ m_pObservableEmitter->onNext(pAny);
+ pAny->release();
+ }
+ }
+
+ return 0;
+}
+
+int CModel::notifyDouble(int code, double dValue)
+{
+ if (m_pObservableEmitter != NULL) {
+ IAny* pAny = RX_AllocaAny();
+ if (pAny != NULL) {
+ pAny->addRef();
+ pAny->setCode(code);
+ pAny->setDoubleValue("value", dValue);
+ m_pObservableEmitter->onNext(pAny);
+ pAny->release();
+ }
+ }
+
+ return 0;
+}
+
int CModel::notifyObjAndInt(int code, IRxObject* pObj1, IRxObject* pObj2, int exCode)
{
if (m_pObservableEmitter != NULL) {
--
Gitblit v1.9.3