diff options
author | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-04-30 23:02:01 +0200 |
---|---|---|
committer | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-04-30 23:02:01 +0200 |
commit | 2cb9f3ceb89038721eb9528dcc56dd33b66b0c85 (patch) | |
tree | ebd21481de50c193c390e29ad5ae3f6f0efeb6f9 /docshell | |
parent | 6cb841b26e10af54559020b23a01ef93a639ac17 (diff) | |
download | uxp-2cb9f3ceb89038721eb9528dcc56dd33b66b0c85.tar.gz |
Bug 1307736 - Ensure History loads pass valid triggeringPrincipal
Diffstat (limited to 'docshell')
-rw-r--r-- | docshell/base/nsDocShell.cpp | 9 | ||||
-rw-r--r-- | docshell/shistory/nsSHEntry.cpp | 7 |
2 files changed, 11 insertions, 5 deletions
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index be8cd6a8db..1a6099d7ab 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -12660,12 +12660,11 @@ nsDocShell::LoadHistoryEntry(nsISHEntry* aEntry, uint32_t aLoadType) srcdoc = NullString(); } - // If there is no triggeringPrincipal we can fall back to using the - // SystemPrincipal as the triggeringPrincipal for loading the history - // entry, since the history entry can only end up in history if security - // checks passed in the initial loading phase. + // If there is no valid triggeringPrincipal, we deny the load + MOZ_ASSERT(triggeringPrincipal, + "need a valid triggeringPrincipal to load from history"); if (!triggeringPrincipal) { - triggeringPrincipal = nsContentUtils::GetSystemPrincipal(); + return NS_ERROR_FAILURE; } // Passing nullptr as aSourceDocShell gives the same behaviour as before diff --git a/docshell/shistory/nsSHEntry.cpp b/docshell/shistory/nsSHEntry.cpp index 9d972136f1..9d8bf5096c 100644 --- a/docshell/shistory/nsSHEntry.cpp +++ b/docshell/shistory/nsSHEntry.cpp @@ -416,6 +416,9 @@ nsSHEntry::Create(nsIURI* aURI, const nsAString& aTitle, uint64_t aDocShellID, bool aDynamicCreation) { + MOZ_ASSERT(aTriggeringPrincipal, + "need a valid triggeringPrincipal to create a session history entry"); + mURI = aURI; mTitle = aTitle; mPostData = aInputStream; @@ -515,6 +518,10 @@ nsSHEntry::GetTriggeringPrincipal(nsIPrincipal** aTriggeringPrincipal) NS_IMETHODIMP nsSHEntry::SetTriggeringPrincipal(nsIPrincipal* aTriggeringPrincipal) { + MOZ_ASSERT(aTriggeringPrincipal, "need a valid triggeringPrincipal"); + if (!aTriggeringPrincipal) { + return NS_ERROR_FAILURE; + } mShared->mTriggeringPrincipal = aTriggeringPrincipal; return NS_OK; } |