From 2aa2f6fa6e4d7c505a82bcb3461eb260a375a5fb Mon Sep 17 00:00:00 2001 From: "bienvenu%netscape.com" Date: Tue, 10 Dec 2002 23:43:09 +0000 Subject: [PATCH] fix potential memory trounce when syncing for offline on some imap servers, r=ducarroz, sr=sspitzer 181372 --- mailnews/imap/src/nsImapFlagAndUidState.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/mailnews/imap/src/nsImapFlagAndUidState.cpp b/mailnews/imap/src/nsImapFlagAndUidState.cpp index 46c235a0b733..98ee43ecdf72 100644 --- a/mailnews/imap/src/nsImapFlagAndUidState.cpp +++ b/mailnews/imap/src/nsImapFlagAndUidState.cpp @@ -398,21 +398,12 @@ NS_IMETHODIMP nsImapFlagAndUidState::GetCustomFlags(PRUint32 uid, char **customF nsAutoCMonitor(this); if (m_customFlagsHash) { - nsPRUint32Key hashKey(uid); - char *value = (char *) m_customFlagsHash->Get(&hashKey); + nsPRUint32Key hashKey(uid); + char *value = (char *) m_customFlagsHash->Get(&hashKey); if (value) { - PRUint32 valueLen = 0, curStringLen = 0; - do - { - curStringLen = strlen(value + valueLen) + 1; - valueLen += curStringLen; - } - while (curStringLen > 1); - - *customFlags = (char *) PR_Malloc(valueLen); - memcpy(*customFlags, value, valueLen); - return NS_OK; + *customFlags = nsCRT::strdup(value); + return (*customFlags) ? NS_OK : NS_ERROR_FAILURE; } } *customFlags = nsnull;