summaryrefslogtreecommitdiff
path: root/protocols/JabberG/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2014-01-04 22:28:29 +0000
committerGeorge Hazan <george.hazan@gmail.com>2014-01-04 22:28:29 +0000
commit37e5a98b8a26c3c62edbadb073485ec129b8d66c (patch)
tree419bc1da729e3e949682888631ca4395f5a29dc9 /protocols/JabberG/src
parent2a25840c67e5a8d8fa88ee37f90414dd546726f7 (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/src')
-rw-r--r--protocols/JabberG/src/jabber_iq.h4
-rw-r--r--protocols/JabberG/src/jabber_proto.cpp22
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;
}