diff options
author | George Hazan <george.hazan@gmail.com> | 2015-05-15 12:58:09 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2015-05-15 12:58:09 +0000 |
commit | 714b5dfb8f159c8d54ef42c905c3c85f4b4e7962 (patch) | |
tree | 0b165971e9bdb09c4599203193ed5481b81eba13 | |
parent | 4336962bfb77acdebcb167571a8ce9e1d6c26778 (diff) |
- when data are dropped from the network buffer, the end of buffer should be '\0';
- valid ERR_LIST_UNAVAILABLE handler
git-svn-id: http://svn.miranda-ng.org/main/trunk@13603 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r-- | protocols/MSN/src/msn_errors.cpp | 6 | ||||
-rw-r--r-- | protocols/MSN/src/msn_global.h | 6 | ||||
-rw-r--r-- | protocols/MSN/src/msn_threads.cpp | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/protocols/MSN/src/msn_errors.cpp b/protocols/MSN/src/msn_errors.cpp index 6ced78f708..8e6a3a232a 100644 --- a/protocols/MSN/src/msn_errors.cpp +++ b/protocols/MSN/src/msn_errors.cpp @@ -56,9 +56,9 @@ int CMsnProto::MSN_HandleErrors(ThreadData* info, char* cmdString) case ERR_CONTACT_LIST_FAILED:
case ERR_LIST_UNAVAILABLE:
- char* tWords[3];
- if (sttDivideWords(cmdString, 3, tWords) == 3)
- HReadBuffer(info, 0).surelyRead(atol(tWords[2]));
+ char* tWords[4];
+ if (sttDivideWords(cmdString, SIZEOF(tWords), tWords) == SIZEOF(tWords))
+ HReadBuffer(info, 0).surelyRead(atol(tWords[3]));
return 0;
case ERR_NOT_ONLINE:
diff --git a/protocols/MSN/src/msn_global.h b/protocols/MSN/src/msn_global.h index 578de7ba52..f2b4074390 100644 --- a/protocols/MSN/src/msn_global.h +++ b/protocols/MSN/src/msn_global.h @@ -311,9 +311,9 @@ struct HReadBuffer BYTE* surelyRead(size_t parBytes);
ThreadData* owner;
- BYTE* buffer;
- size_t totalDataSize;
- size_t startOffset;
+ BYTE* buffer;
+ size_t totalDataSize;
+ size_t startOffset;
};
enum TInfoType
diff --git a/protocols/MSN/src/msn_threads.cpp b/protocols/MSN/src/msn_threads.cpp index 818cd0e453..f9be399735 100644 --- a/protocols/MSN/src/msn_threads.cpp +++ b/protocols/MSN/src/msn_threads.cpp @@ -678,6 +678,8 @@ HReadBuffer::~HReadBuffer() owner->mBytesInData = (int)totalDataSize;
}
else owner->mBytesInData = 0;
+
+ buffer[owner->mBytesInData] = 0;
}
BYTE* HReadBuffer::surelyRead(size_t parBytes)
|