Fix for bug 113464. Don't free unallocated objects. r=peterl, sr=beard.

git-svn-id: svn://10.0.0.236/trunk@119157 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bnesse%netscape.com
2002-04-16 22:16:16 +00:00
parent 643753d4bb
commit 465d569ee0

View File

@@ -314,9 +314,10 @@ nsresult nsPluginFile::GetPluginInfo(nsPluginInfo& info)
// fill-in rest of info struct
int variantCount = info.fVariantCount;
info.fMimeTypeArray = new char*[variantCount];
info.fMimeDescriptionArray = new char*[variantCount];
info.fExtensionArray = new char*[variantCount];
info.fMimeTypeArray = new char*[variantCount];
info.fExtensionArray = new char*[variantCount];
if (mi.infoStrings)
info.fMimeDescriptionArray = new char*[variantCount];
short mimeIndex = 2, descriptionIndex = 2;
for (int i = 0; i < variantCount; i++) {
@@ -341,19 +342,24 @@ nsresult nsPluginFile::GetPluginInfo(nsPluginInfo& info)
nsresult nsPluginFile::FreePluginInfo(nsPluginInfo& info)
{
if (info.fPluginInfoSize <= sizeof(nsPluginInfo))
{
if (info.fPluginInfoSize <= sizeof(nsPluginInfo)) {
delete[] info.fName;
delete[] info.fDescription;
int variantCount = info.fVariantCount;
for (int i = 0; i < variantCount; i++)
{
for (int i = 0; i < variantCount; i++) {
delete[] info.fMimeTypeArray[i];
delete[] info.fExtensionArray[i];
delete[] info.fMimeDescriptionArray[i];
}
delete[] info.fMimeTypeArray;
delete[] info.fMimeDescriptionArray;
if (info.fMimeDescriptionArray) {
for (int i = 0; i < variantCount; i++) {
delete[] info.fMimeDescriptionArray[i];
}
delete[] info.fMimeDescriptionArray;
}
delete[] info.fExtensionArray;
delete[] info.fFileName;
delete[] info.fFullPath;