diff --git a/netwerk/base/Dashboard.cpp b/netwerk/base/Dashboard.cpp index 965c0f0f7d9..6930982fc78 100644 --- a/netwerk/base/Dashboard.cpp +++ b/netwerk/base/Dashboard.cpp @@ -298,7 +298,6 @@ LookupHelper::OnLookupComplete(nsICancelable *aRequest, nsresult LookupHelper::ConstructAnswer(LookupArgument *aArgument) { - nsIDNSRecord *aRecord = aArgument->mRecord; AutoSafeJSContext cx; @@ -312,10 +311,15 @@ LookupHelper::ConstructAnswer(LookupArgument *aArgument) bool hasMore; aRecord->HasMore(&hasMore); while (hasMore) { - nsCString nextAddress; - aRecord->GetNextAddrAsString(nextAddress); - CopyASCIItoUTF16(nextAddress, *addresses.AppendElement()); - aRecord->HasMore(&hasMore); + nsString* nextAddress = addresses.AppendElement(); + if (!nextAddress) { + return NS_ERROR_OUT_OF_MEMORY; + } + + nsCString nextAddressASCII; + aRecord->GetNextAddrAsString(nextAddressASCII); + CopyASCIItoUTF16(nextAddressASCII, *nextAddress); + aRecord->HasMore(&hasMore); } } else { dict.mAnswer = false;