if (sid1->num_auths != sid2->num_auths)
return sid1->num_auths - sid2->num_auths;
- for (i = sid1->num_auths-1; i >= 0; --i)
- if (sid1->sub_auths[i] != sid2->sub_auths[i])
- return sid1->sub_auths[i] - sid2->sub_auths[i];
+ for (i = sid1->num_auths-1; i >= 0; --i) {
+ if (sid1->sub_auths[i] < sid2->sub_auths[i]) {
+ return -1;
+ }
+ if (sid1->sub_auths[i] > sid2->sub_auths[i]) {
+ return 1;
+ }
+ }
return dom_sid_compare_auth(sid1, sid2);
}
n = MIN(sid1->num_auths, sid2->num_auths);
- for (i = n-1; i >= 0; --i)
- if (sid1->sub_auths[i] != sid2->sub_auths[i])
- return sid1->sub_auths[i] - sid2->sub_auths[i];
+ for (i = n-1; i >= 0; --i) {
+ if (sid1->sub_auths[i] < sid2->sub_auths[i]) {
+ return -1;
+ }
+ if (sid1->sub_auths[i] > sid2->sub_auths[i]) {
+ return 1;
+ }
+ }
return dom_sid_compare_auth(sid1, sid2);
}