Bug 447579. Be a little more careful about inheriting principals for file URIs. r=dveditz, sr=jst, a=dveditz
git-svn-id: svn://10.0.0.236/trunk@254179 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
457799fee2
commit
aa29b444fd
@ -7462,7 +7462,17 @@ nsDocShell::DoURILoad(nsIURI * aURI,
|
||||
nsCOMPtr<nsIPrincipal> ownerPrincipal(do_QueryInterface(aOwner));
|
||||
if (URIIsLocalFile(aURI) && ownerPrincipal &&
|
||||
NS_SUCCEEDED(ownerPrincipal->CheckMayLoad(aURI, PR_FALSE))) {
|
||||
channel->SetOwner(aOwner);
|
||||
// One more check here. CheckMayLoad will always return true for the
|
||||
// system principal, but we do NOT want to inherit in that case.
|
||||
PRBool isSystem;
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID);
|
||||
if (secMan &&
|
||||
NS_SUCCEEDED(secMan->IsSystemPrincipal(ownerPrincipal,
|
||||
&isSystem)) &&
|
||||
!isSystem) {
|
||||
channel->SetOwner(aOwner);
|
||||
}
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIScriptChannel> scriptChannel = do_QueryInterface(channel);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user