Bug 424733. Be a little more careful with certificate principals. r+sr=sicking, a=dveditz
git-svn-id: svn://10.0.0.236/trunk@254712 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
e2eb7495da
commit
2b38cfdbd1
@ -1373,7 +1373,21 @@ nsXBLBinding::AllowScripts()
|
||||
PRBool canExecute;
|
||||
nsresult rv =
|
||||
mgr->CanExecuteScripts(cx, ourDocument->NodePrincipal(), &canExecute);
|
||||
return NS_SUCCEEDED(rv) && canExecute;
|
||||
if (NS_FAILED(rv) || !canExecute) {
|
||||
return PR_FALSE;
|
||||
}
|
||||
|
||||
// Now one last check: make sure that we're not allowing a privilege
|
||||
// escalations here.
|
||||
PRBool haveCert;
|
||||
doc->NodePrincipal()->GetHasCertificate(&haveCert);
|
||||
if (!haveCert) {
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
PRBool subsumes;
|
||||
rv = ourDocument->NodePrincipal()->Subsumes(doc->NodePrincipal(), &subsumes);
|
||||
return NS_SUCCEEDED(rv) && subsumes;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user