diff options
author | George Hazan <george.hazan@gmail.com> | 2014-01-04 22:28:29 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2014-01-04 22:28:29 +0000 |
commit | 37e5a98b8a26c3c62edbadb073485ec129b8d66c (patch) | |
tree | 419bc1da729e3e949682888631ca4395f5a29dc9 /protocols/JabberG | |
parent | 2a25840c67e5a8d8fa88ee37f90414dd546726f7 (diff) |
two memory leaks in Jabber
git-svn-id: http://svn.miranda-ng.org/main/trunk@7507 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/JabberG')
-rw-r--r-- | protocols/JabberG/src/jabber_iq.h | 4 | ||||
-rw-r--r-- | protocols/JabberG/src/jabber_proto.cpp | 22 |
2 files changed, 12 insertions, 14 deletions
diff --git a/protocols/JabberG/src/jabber_iq.h b/protocols/JabberG/src/jabber_iq.h index acaa90a47d..f98fdb5989 100644 --- a/protocols/JabberG/src/jabber_iq.h +++ b/protocols/JabberG/src/jabber_iq.h @@ -78,6 +78,10 @@ public: {
memset(this, 0, sizeof(*this));
}
+ __forceinline ~CJabberIqInfo()
+ {
+ mir_free(m_szReceiver);
+ }
__forceinline void SetReceiver(const TCHAR *szReceiver)
{ replaceStrT(m_szReceiver, szReceiver);
diff --git a/protocols/JabberG/src/jabber_proto.cpp b/protocols/JabberG/src/jabber_proto.cpp index f73fe0cb0d..73c585f408 100644 --- a/protocols/JabberG/src/jabber_proto.cpp +++ b/protocols/JabberG/src/jabber_proto.cpp @@ -1333,22 +1333,16 @@ int __cdecl CJabberProto::SetAwayMsg(int status, const TCHAR *msg) return 1;
}
- TCHAR *newModeMsg = mir_tstrdup(msg);
+ if ((*szMsg == NULL && msg == NULL) || (*szMsg != NULL && msg != NULL && !lstrcmp(*szMsg, msg)))
+ return 0; // Message is the same, no update needed
- if ((*szMsg == NULL && newModeMsg == NULL) ||
- (*szMsg != NULL && newModeMsg != NULL && !lstrcmp(*szMsg, newModeMsg))) {
- // Message is the same, no update needed
- mir_free(newModeMsg);
- }
- else {
- // Update with the new mode message
- replaceStrT(*szMsg, newModeMsg);
- // Send a presence update if needed
- lck.unlock();
- if (status == m_iStatus)
- SendPresence(m_iStatus, true);
- }
+ // Update with the new mode message
+ replaceStrT(*szMsg, msg);
+ // Send a presence update if needed
+ lck.unlock();
+ if (status == m_iStatus)
+ SendPresence(m_iStatus, true);
return 0;
}
|