Bug 603845 - Protect ourselves against compartments that have null principals. r=gal

This commit is contained in:
Blake Kaplan 2010-10-13 11:37:25 -07:00
Родитель 699053914d
Коммит 31725d8b36
1 изменённых файлов: 10 добавлений и 2 удалений

Просмотреть файл

@ -60,9 +60,17 @@ GetCompartmentPrincipal(JSCompartment *compartment)
bool
AccessCheck::isSameOrigin(JSCompartment *a, JSCompartment *b)
{
nsIPrincipal *aprin = GetCompartmentPrincipal(a);
nsIPrincipal *bprin = GetCompartmentPrincipal(b);
// If either a or b doesn't have principals, we don't have enough
// information to tell. Seeing as how this is Gecko, we are default-unsafe
// in this case.
if (!aprin || !bprin)
return true;
PRBool cond;
return NS_SUCCEEDED(GetCompartmentPrincipal(a)->Equals(GetCompartmentPrincipal(b), &cond)) &&
cond;
return NS_SUCCEEDED(aprin->Equals(bprin, &cond)) && cond;
}
bool