diff options
Diffstat (limited to 'plugins/Db3x_mmap/src')
-rw-r--r-- | plugins/Db3x_mmap/src/dbevents.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/plugins/Db3x_mmap/src/dbevents.cpp b/plugins/Db3x_mmap/src/dbevents.cpp index 0c0294297b..41782ec970 100644 --- a/plugins/Db3x_mmap/src/dbevents.cpp +++ b/plugins/Db3x_mmap/src/dbevents.cpp @@ -361,6 +361,13 @@ void CDb3Mmap::ConvertContactEvents(DBContact *cc) for (DWORD ofsEvent = cc->ofsFirstEvent; ofsEvent != 0;) {
DBEvent_094 pOld = *(DBEvent_094*)DBRead(ofsEvent, sizeof(DBEvent_094), NULL);
+ if (pOld.signature != DBEVENT_SIGNATURE)
+ break;
+
+ if (pOld.cbBlob >= 65536) {
+ ofsEvent = pOld.ofsNext;
+ continue;
+ }
memcpy(pBlob, m_pDbCache + ofsEvent + offsetof(DBEvent_094, blob), pOld.cbBlob);
DWORD ofsNew = ReallocSpace(ofsEvent, offsetof(DBEvent_094, blob) + pOld.cbBlob, offsetof(DBEvent, blob) + pOld.cbBlob);
|