Bug 500777 - Crash in [@ nsMimeTypeArray::GetMimeTypes() ] while logging into QMO. r+sr=smaug
--- a/dom/base/nsMimeTypeArray.cpp
+++ b/dom/base/nsMimeTypeArray.cpp
@@ -248,27 +248,27 @@ nsresult nsMimeTypeArray::GetMimeTypes()
if (!mMimeTypeArray.SetCapacity(pluginMimeTypeCount))
return NS_ERROR_OUT_OF_MEMORY;
mPluginMimeTypeCount = pluginMimeTypeCount;
mInited = PR_TRUE;
PRUint32 k;
for (k = 0; k < pluginCount; k++) {
- nsIDOMPlugin* plugin = nsnull;
- if (pluginArray->Item(k, &plugin) == NS_OK) {
+ nsCOMPtr<nsIDOMPlugin> plugin;
+ if (NS_SUCCEEDED(pluginArray->Item(k, getter_AddRefs(plugin))) &&
+ plugin) {
PRUint32 mimeTypeCount = 0;
if (plugin->GetLength(&mimeTypeCount) == NS_OK) {
nsCOMPtr<nsIDOMMimeType> item;
for (PRUint32 j = 0; j < mimeTypeCount; j++) {
plugin->Item(j, getter_AddRefs(item));
mMimeTypeArray.AppendObject(item);
}
}
- NS_RELEASE(plugin);
}
}
}
NS_RELEASE(pluginArray);
}
return rv;
}