From ee35b17e21bc5e4388e47c6af1c9736af910d306 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 10 Oct 2023 18:54:46 +0300 Subject: YAMN: custom base64 decoder eliminated --- protocols/YAMN/src/browser/mailbrowser.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'protocols/YAMN/src/browser') diff --git a/protocols/YAMN/src/browser/mailbrowser.cpp b/protocols/YAMN/src/browser/mailbrowser.cpp index 1cc60c42b7..f92e8b4d6a 100644 --- a/protocols/YAMN/src/browser/mailbrowser.cpp +++ b/protocols/YAMN/src/browser/mailbrowser.cpp @@ -1216,19 +1216,17 @@ INT_PTR CALLBACK DlgProcYAMNShowMessage(HWND hDlg, UINT msg, WPARAM wParam, LPAR } if (body) { wchar_t *bodyDecoded = nullptr; - char *localBody = nullptr; + ptrA localBody; if (contentType) { if (!_strnicmp(contentType, "text", 4)) { if (transEncoding) { if (!_stricmp(transEncoding, "base64")) { - int size = (int)mir_strlen(body) * 3 / 4 + 5; - localBody = new char[size + 1]; - DecodeBase64(body, localBody, size); + localBody = (char*)mir_base64_decode(body, 0); } else if (!_stricmp(transEncoding, "quoted-printable")) { - int size = (int)mir_strlen(body) + 2; - localBody = new char[size + 1]; - DecodeQuotedPrintable(body, localBody, size, FALSE); + size_t size = mir_strlen(body) + 2; + localBody = (char*)mir_alloc(size + 1); + DecodeQuotedPrintable(body, localBody, (int)size, FALSE); } } } @@ -1244,7 +1242,6 @@ INT_PTR CALLBACK DlgProcYAMNShowMessage(HWND hDlg, UINT msg, WPARAM wParam, LPAR ConvertStringToUnicode(localBody ? localBody : body, MailParam->mail->MailData->CP, &bodyDecoded); SetWindowTextW(hEdit, bodyDecoded); delete[] bodyDecoded; - if (localBody) delete[] localBody; SetFocus(hEdit); } if (!(MailParam->mail->Flags & YAMN_MSG_BODYRECEIVED)) { -- cgit v1.2.3