diff options
Diffstat (limited to 'plugins/Spamotron')
-rw-r--r-- | plugins/Spamotron/src/spamotron.cpp | 32 | ||||
-rw-r--r-- | plugins/Spamotron/src/utils.cpp | 23 |
2 files changed, 26 insertions, 29 deletions
diff --git a/plugins/Spamotron/src/spamotron.cpp b/plugins/Spamotron/src/spamotron.cpp index 445261ee14..f61f1c43f5 100644 --- a/plugins/Spamotron/src/spamotron.cpp +++ b/plugins/Spamotron/src/spamotron.cpp @@ -227,23 +227,21 @@ int OnDBEventFilterAdd(WPARAM wParam, LPARAM lParam) wchar_t AuthEventModule[100];
char* szAuthEventModule;
if (db_get(hContact, MODULENAME, "AuthEvent", &_dbv) == 0) {
- DBEVENTINFO *_dbei = (DBEVENTINFO *)malloc(sizeof(DBEVENTINFO));
- if (_dbei != nullptr) {
- memcpy(&_dbei->cbBlob, _dbv.pbVal, sizeof(DWORD));
- _dbei->eventType = EVENTTYPE_AUTHREQUEST;
- _getCOptS(AuthEventModule, 100, hContact, "AuthEventModule", L"ICQ");
- szAuthEventModule = mir_u2a(AuthEventModule);
- _dbei->szModule = szAuthEventModule;
- _dbei->timestamp = dbei->timestamp;
- _dbei->flags = 0;
- _dbei->pBlob = _dbv.pbVal + sizeof(DWORD);
- db_event_add(hContact,_dbei);
- g_plugin.delSetting(hContact, "AuthEvent");
- g_plugin.delSetting(hContact, "AuthEventPending");
- g_plugin.delSetting(hContact, "AuthEventModule");
- mir_free(szAuthEventModule);
- free(_dbei);
- }
+ DBEVENTINFO dbei2 = {};
+ dbei2.cbBlob = *(DWORD *)_dbv.pbVal;
+ dbei2.eventType = EVENTTYPE_AUTHREQUEST;
+ _getCOptS(AuthEventModule, 100, hContact, "AuthEventModule", L"ICQ");
+ szAuthEventModule = mir_u2a(AuthEventModule);
+ dbei2.szModule = szAuthEventModule;
+ dbei2.timestamp = dbei->timestamp;
+ dbei2.pBlob = _dbv.pbVal + sizeof(DWORD);
+ db_event_add(hContact, &dbei2);
+
+ g_plugin.delSetting(hContact, "AuthEvent");
+ g_plugin.delSetting(hContact, "AuthEventPending");
+ g_plugin.delSetting(hContact, "AuthEventModule");
+ mir_free(szAuthEventModule);
+
db_free(&_dbv);
}
}
diff --git a/plugins/Spamotron/src/utils.cpp b/plugins/Spamotron/src/utils.cpp index bdbbdacd09..52ba7ef5c4 100644 --- a/plugins/Spamotron/src/utils.cpp +++ b/plugins/Spamotron/src/utils.cpp @@ -488,21 +488,20 @@ void MarkUnread(MCONTACT hContact) if (db_get(hContact, MODULENAME, "LastMsgEvents", &_dbv) == 0) { pos = _dbv.pbVal; while (pos - _dbv.pbVal < _dbv.cpbVal) { - DBEVENTINFO _dbei = {}; - memcpy(&_dbei.eventType, pos, sizeof(WORD)); pos += sizeof(WORD); - memcpy(&_dbei.flags, pos, sizeof(DWORD)); pos += sizeof(DWORD); - memcpy(&_dbei.timestamp, pos, sizeof(DWORD)); pos += sizeof(DWORD); + DBEVENTINFO dbei = {}; + memcpy(&dbei.eventType, pos, sizeof(WORD)); pos += sizeof(WORD); + memcpy(&dbei.flags, pos, sizeof(DWORD)); pos += sizeof(DWORD); + memcpy(&dbei.timestamp, pos, sizeof(DWORD)); pos += sizeof(DWORD); - _dbei.szModule = (char*)malloc(mir_strlen((const char*)pos)+1); - mir_strcpy(_dbei.szModule, (const char*)pos); + dbei.szModule = (char*)malloc(mir_strlen((const char*)pos)+1); + mir_strcpy((char*)dbei.szModule, (const char*)pos); pos += mir_strlen((const char*)pos)+1; - memcpy(&_dbei.cbBlob, pos, sizeof(DWORD)); pos += sizeof(DWORD); - _dbei.pBlob = (PBYTE)malloc(_dbei.cbBlob); - memcpy(_dbei.pBlob, pos, _dbei.cbBlob); - pos += _dbei.cbBlob; - - db_event_add(hContact,&_dbei); + memcpy(&dbei.cbBlob, pos, sizeof(DWORD)); pos += sizeof(DWORD); + dbei.pBlob = (PBYTE)malloc(dbei.cbBlob); + memcpy(dbei.pBlob, pos, dbei.cbBlob); + pos += dbei.cbBlob; + db_event_add(hContact,&dbei); } db_free(&_dbv); g_plugin.delSetting(hContact, "LastMsgEvents"); |