From af2c72d1b740d454fc0e6b6bb18b3dc15dae6b79 Mon Sep 17 00:00:00 2001 From: "warren%netscape.com" Date: Fri, 16 Jun 2000 07:47:46 +0000 Subject: [PATCH] Bug 42283. Crash downloading jar file. git-svn-id: svn://10.0.0.236/trunk@72361 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/modules/libjar/nsJARChannel.cpp | 2 +- mozilla/modules/libjar/nsJARURI.cpp | 3 +++ mozilla/netwerk/protocol/jar/src/nsJARChannel.cpp | 2 +- mozilla/netwerk/protocol/jar/src/nsJARURI.cpp | 3 +++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mozilla/modules/libjar/nsJARChannel.cpp b/mozilla/modules/libjar/nsJARChannel.cpp index ee2244b5e6a..550db4e440a 100644 --- a/mozilla/modules/libjar/nsJARChannel.cpp +++ b/mozilla/modules/libjar/nsJARChannel.cpp @@ -449,7 +449,7 @@ nsJARChannel::EnsureJARFileAvailable(OnJARFileAvailableFun onJARFileAvailable, if (NS_FAILED(rv)) goto error; rv = jarBaseChannel->GetLocalFile(getter_AddRefs(jarCacheFile)); - if (NS_SUCCEEDED(rv)) { + if (NS_SUCCEEDED(rv) && jarCacheFile) { // Case 1: Local file // we've already got a local jar file -- no need to download it diff --git a/mozilla/modules/libjar/nsJARURI.cpp b/mozilla/modules/libjar/nsJARURI.cpp index 98e8fb74e41..34ef86d3bec 100644 --- a/mozilla/modules/libjar/nsJARURI.cpp +++ b/mozilla/modules/libjar/nsJARURI.cpp @@ -243,6 +243,9 @@ nsJARURI::Equals(nsIURI *other, PRBool *result) nsresult rv; *result = PR_FALSE; + if (other == nsnull) + return NS_OK; // not equal + nsJARURI* otherJAR; rv = other->QueryInterface(NS_GET_IID(nsIJARURI), (void**)&otherJAR); if (NS_FAILED(rv)) diff --git a/mozilla/netwerk/protocol/jar/src/nsJARChannel.cpp b/mozilla/netwerk/protocol/jar/src/nsJARChannel.cpp index ee2244b5e6a..550db4e440a 100644 --- a/mozilla/netwerk/protocol/jar/src/nsJARChannel.cpp +++ b/mozilla/netwerk/protocol/jar/src/nsJARChannel.cpp @@ -449,7 +449,7 @@ nsJARChannel::EnsureJARFileAvailable(OnJARFileAvailableFun onJARFileAvailable, if (NS_FAILED(rv)) goto error; rv = jarBaseChannel->GetLocalFile(getter_AddRefs(jarCacheFile)); - if (NS_SUCCEEDED(rv)) { + if (NS_SUCCEEDED(rv) && jarCacheFile) { // Case 1: Local file // we've already got a local jar file -- no need to download it diff --git a/mozilla/netwerk/protocol/jar/src/nsJARURI.cpp b/mozilla/netwerk/protocol/jar/src/nsJARURI.cpp index 98e8fb74e41..34ef86d3bec 100644 --- a/mozilla/netwerk/protocol/jar/src/nsJARURI.cpp +++ b/mozilla/netwerk/protocol/jar/src/nsJARURI.cpp @@ -243,6 +243,9 @@ nsJARURI::Equals(nsIURI *other, PRBool *result) nsresult rv; *result = PR_FALSE; + if (other == nsnull) + return NS_OK; // not equal + nsJARURI* otherJAR; rv = other->QueryInterface(NS_GET_IID(nsIJARURI), (void**)&otherJAR); if (NS_FAILED(rv))