summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcli/security/security_descriptor.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/libcli/security/security_descriptor.c b/libcli/security/security_descriptor.c
index 25b316cdd2a..8304b208528 100644
--- a/libcli/security/security_descriptor.c
+++ b/libcli/security/security_descriptor.c
@@ -344,17 +344,29 @@ NTSTATUS security_descriptor_sacl_del(struct security_descriptor *sd,
/*
compare two security ace structures
*/
-bool security_ace_equal(const struct security_ace *ace1,
+bool security_ace_equal(const struct security_ace *ace1,
const struct security_ace *ace2)
{
- if (ace1 == ace2) return true;
- if (!ace1 || !ace2) return false;
- if (ace1->type != ace2->type) return false;
- if (ace1->flags != ace2->flags) return false;
- if (ace1->access_mask != ace2->access_mask) return false;
- if (!dom_sid_equal(&ace1->trustee, &ace2->trustee)) return false;
+ if (ace1 == ace2) {
+ return true;
+ }
+ if ((ace1 == NULL) || (ace2 == NULL)) {
+ return false;
+ }
+ if (ace1->type != ace2->type) {
+ return false;
+ }
+ if (ace1->flags != ace2->flags) {
+ return false;
+ }
+ if (ace1->access_mask != ace2->access_mask) {
+ return false;
+ }
+ if (!dom_sid_equal(&ace1->trustee, &ace2->trustee)) {
+ return false;
+ }
- return true;
+ return true;
}