From cb8b2568ac7da42f2e8c9242c427fe54af973e07 Mon Sep 17 00:00:00 2001 From: "darin%meer.net" Date: Wed, 14 Sep 2005 20:49:03 +0000 Subject: [PATCH] fixes bug 308370 "nsIncrementalDownload::GetDestination should return a clone of nsIFile" r=biesi --- netwerk/base/src/nsIncrementalDownload.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/netwerk/base/src/nsIncrementalDownload.cpp b/netwerk/base/src/nsIncrementalDownload.cpp index 06cf4b79047b..f643803ff4d8 100644 --- a/netwerk/base/src/nsIncrementalDownload.cpp +++ b/netwerk/base/src/nsIncrementalDownload.cpp @@ -429,8 +429,14 @@ nsIncrementalDownload::GetFinalURI(nsIURI **result) NS_IMETHODIMP nsIncrementalDownload::GetDestination(nsIFile **result) { - NS_IF_ADDREF(*result = mDest); - return NS_OK; + if (!mDest) { + *result = nsnull; + return NS_OK; + } + // Return a clone of mDest so that callers may modify the resulting nsIFile + // without corrupting our internal object. This also works around the fact + // that some nsIFile impls may cache the result of stat'ing the filesystem. + return mDest->Clone(result); } NS_IMETHODIMP