continue;
}
- if (dom_sid_equal(&ace->trustee, &self_sid)) {
+ if (dom_sid_equal(&ace->trustee, &self_sid) && replace_sid) {
trustee = replace_sid;
} else {
trustee = &ace->trustee;
switch (ace->type) {
case SEC_ACE_TYPE_ACCESS_ALLOWED:
- object_tree_modify_access(tree, ace->access_mask);
+ if (tree) {
+ object_tree_modify_access(tree, ace->access_mask);
+ }
bits_remaining &= ~ace->access_mask;
break;
*/
type = get_ace_object_type(ace);
+ if (!tree) {
+ continue;
+ }
+
if (!type) {
node = tree;
} else {
- node = get_object_tree_by_GUID(tree, type);
- }
-
- if (node == NULL) {
- continue;
+ if (!(node = get_object_tree_by_GUID(tree, type))) {
+ continue;
+ }
}
if (ace->type == SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT) {