From 89af28ed99bfa8ea6de9c0f66f0ecf5bdd3be668 Mon Sep 17 00:00:00 2001 From: "morse%netscape.com" Date: Fri, 13 Apr 2001 21:45:34 +0000 Subject: [PATCH] bug 75748, crash when viewing a particular message, r=sspitzer, sr=mscott git-svn-id: svn://10.0.0.236/trunk@92224 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/extensions/cookie/nsCookieService.cpp | 24 ++++++++++--------- mozilla/extensions/cookie/nsCookies.cpp | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/mozilla/extensions/cookie/nsCookieService.cpp b/mozilla/extensions/cookie/nsCookieService.cpp index 4f56f492ecd..e689043f1a9 100644 --- a/mozilla/extensions/cookie/nsCookieService.cpp +++ b/mozilla/extensions/cookie/nsCookieService.cpp @@ -122,8 +122,7 @@ nsCookieService::OnEndURLLoad } NS_IMETHODIMP -nsCookieService::GetCookieString(nsIURI *aURL, char ** aCookie) -{ +nsCookieService::GetCookieString(nsIURI *aURL, char ** aCookie) { nsXPIDLCString spec; nsresult rv = aURL->GetSpec(getter_Copies(spec)); if (NS_FAILED(rv)) return rv; @@ -132,18 +131,21 @@ nsCookieService::GetCookieString(nsIURI *aURL, char ** aCookie) } NS_IMETHODIMP -nsCookieService::GetCookieStringFromHttp(nsIURI *aURL, nsIURI *aFirstURL, char ** aCookie) -{ - NS_ENSURE_ARG_POINTER(aURL); - NS_ENSURE_ARG_POINTER(aFirstURL); - +nsCookieService::GetCookieStringFromHttp(nsIURI *aURL, nsIURI *aFirstURL, char ** aCookie) { + if (!aURL) { + return NS_ERROR_FAILURE; + } nsXPIDLCString spec; nsresult rv = aURL->GetSpec(getter_Copies(spec)); if (NS_FAILED(rv)) return rv; - nsXPIDLCString firstSpec; - rv = aFirstURL->GetSpec(getter_Copies(firstSpec)); - if (NS_FAILED(rv)) return rv; - *aCookie = COOKIE_GetCookieFromHttp((char *)(const char *)spec, (char *)(const char *)firstSpec); + if (aFirstURL) { + nsXPIDLCString firstSpec; + rv = aFirstURL->GetSpec(getter_Copies(firstSpec)); + if (NS_FAILED(rv)) return rv; + *aCookie = COOKIE_GetCookieFromHttp((char *)(const char *)spec, (char *)(const char *)firstSpec); + } else { + *aCookie = COOKIE_GetCookieFromHttp((char *)(const char *)spec, nsnull); + } return NS_OK; } diff --git a/mozilla/extensions/cookie/nsCookies.cpp b/mozilla/extensions/cookie/nsCookies.cpp index 74c3349ea5a..bbc954f3ee9 100644 --- a/mozilla/extensions/cookie/nsCookies.cpp +++ b/mozilla/extensions/cookie/nsCookies.cpp @@ -620,7 +620,7 @@ PUBLIC char * COOKIE_GetCookieFromHttp(char * address, char * firstAddress) { if ((cookie_GetBehaviorPref() == PERMISSION_DontAcceptForeign) && - cookie_isForeign(address, firstAddress)) { + (!firstAddress || cookie_isForeign(address, firstAddress))) { /* * WARNING!!! This is a different behavior than 4.x. In 4.x we used this pref to