diff options
Diffstat (limited to 'protocols/ICQ-WIM/src/avatars.cpp')
-rw-r--r-- | protocols/ICQ-WIM/src/avatars.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/protocols/ICQ-WIM/src/avatars.cpp b/protocols/ICQ-WIM/src/avatars.cpp index 452a9da444..73766e7ec8 100644 --- a/protocols/ICQ-WIM/src/avatars.cpp +++ b/protocols/ICQ-WIM/src/avatars.cpp @@ -106,23 +106,13 @@ INT_PTR __cdecl CIcqProto::SetAvatar(WPARAM, LPARAM lParam) } unsigned dwSize = (unsigned)_filelengthi64(fileId); - char *pData = (char *)mir_alloc(dwSize); - if (pData == nullptr) { - _close(fileId); - delete pReq; - return 2; - } - - _read(fileId, pData, dwSize); + pReq->m_szParam.Truncate(dwSize); + _read(fileId, pReq->m_szParam.GetBuffer(), dwSize); _close(fileId); - pReq->pData = pData; - pReq->dataLength = dwSize; - - int iAvatarType = ProtoGetBufferFormat(pData); + int iAvatarType = ProtoGetBufferFormat(pReq->m_szParam); if (iAvatarType == PA_FORMAT_UNKNOWN) { delete pReq; - delete pData; return 3; } |