diff --git a/mozilla/mailnews/base/search/src/nsMsgFilterService.cpp b/mozilla/mailnews/base/search/src/nsMsgFilterService.cpp index e260c45..50e2a92 100644 --- mozilla/mailnews/base/search/src/nsMsgFilterService.cpp +++ mozilla/mailnews/base/search/src/nsMsgFilterService.cpp @@ -142,6 +142,9 @@ NS_IMETHODIMP nsMsgFilterService::SaveFilterList(nsIMsgFilterList *filterList, n NS_ENSURE_ARG_POINTER(filterFile); NS_ENSURE_ARG_POINTER(filterList); + PRBool tmpExists; + nsresult rv; + nsresult ret = NS_OK; nsCOMPtr tmpFiltersFile; nsCOMPtr realFiltersFile; @@ -193,11 +196,14 @@ NS_IMETHODIMP nsMsgFilterService::SaveFilterList(nsIMsgFilterList *filterList, n parentDir->Rename(finalLeafName); else // fall back to msgFilterRules.dat parentDir->Rename("msgFilterRules.dat"); - - tmpFiltersFile->Delete(PR_FALSE); } } + + rv = tmpFiltersFile->Exists(&tmpExists); + if (NS_SUCCEEDED(rv) && tmpExists) + tmpFiltersFile->Delete(PR_FALSE); + NS_ASSERTION(NS_SUCCEEDED(ret), "error opening/saving filter list"); return ret; }