From 73bae8fde67410b1f826ab9674f5116e82e4d213 Mon Sep 17 00:00:00 2001 From: "taka%netscape.com" Date: Fri, 2 Feb 2001 08:13:12 +0000 Subject: [PATCH] check ConvertFromUnicode() result and handle error - #66958, sr=sspitzer, sr=bienvenu git-svn-id: svn://10.0.0.236/trunk@86056 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/base/search/src/nsMsgSearchAdapter.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mozilla/mailnews/base/search/src/nsMsgSearchAdapter.cpp b/mozilla/mailnews/base/search/src/nsMsgSearchAdapter.cpp index 55dc25a0ff3..74a5d3f8d8e 100644 --- a/mozilla/mailnews/base/search/src/nsMsgSearchAdapter.cpp +++ b/mozilla/mailnews/base/search/src/nsMsgSearchAdapter.cpp @@ -581,8 +581,8 @@ nsresult nsMsgSearchAdapter::EncodeImapTerm (nsIMsgSearchTerm *term, PRBool real useQuotes = !reallyDredd || (nsAutoString(convertedValue).FindChar((PRUnichar)' ') != -1); // now convert to char* and escape quoted_specials - ConvertFromUnicode(nsAutoString(convertedValue), nsAutoString(destCharset), &value); - if (value) + nsresult rv = ConvertFromUnicode(nsAutoString(destCharset), nsAutoString(convertedValue), &value); + if (NS_SUCCEEDED(rv) && value) { char *oldValue = value; // max escaped length is one extra character for every character in the cmd. @@ -602,9 +602,11 @@ nsresult nsMsgSearchAdapter::EncodeImapTerm (nsIMsgSearchTerm *term, PRBool real *p = '\0'; value = nsCRT::strdup(newValue); // realloc down to smaller size nsCRT::free(newValue); + nsCRT::free(oldValue); } - nsCRT::free(oldValue); } + else + value = nsCRT::strdup(""); nsCRT::free(convertedValue); valueWasAllocated = PR_TRUE;