]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libcli/security: use NUMERIC_CMP in dom_sid_compare()
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Thu, 4 Apr 2024 00:43:47 +0000 (13:43 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 10 Apr 2024 22:56:33 +0000 (22:56 +0000)
sid->num_auths is always small (int8 < 16), so this is cosmetic only.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15625

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
libcli/security/dom_sid.c

index eaece2a55f5c59ccb6c19940b9e667b447cc06b1..82816071a7a4a783c2abbe994a11194e82f2ee47 100644 (file)
@@ -28,6 +28,7 @@
 #include "librpc/gen_ndr/security.h"
 #include "dom_sid.h"
 #include "lib/util/smb_strtox.h"
+#include "lib/util/tsort.h"
 
 /*****************************************************************
  Compare the auth portion of two sids.
@@ -71,9 +72,9 @@ int dom_sid_compare(const struct dom_sid *sid1, const struct dom_sid *sid2)
                return 1;
 
        /* Compare most likely different rids, first: i.e start at end */
-       if (sid1->num_auths != sid2->num_auths)
-               return sid1->num_auths - sid2->num_auths;
-
+       if (sid1->num_auths != sid2->num_auths) {
+               return NUMERIC_CMP(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 -1;