s4-pvfs: use O_FOLLOW one level at a time for security overrides
[ira/wip.git] / libcli / security / secace.c
index 7d87b1cd5eb4f122a393ea75500045d793af17bc..8a73a6ab94cea7109d26f4576c0954065598d452 100644 (file)
@@ -23,6 +23,7 @@
 #include "includes.h"
 #include "librpc/gen_ndr/ndr_security.h"
 #include "libcli/security/dom_sid.h"
+#include "lib/util/tsort.h"
 
 #define  SEC_ACE_HEADER_SIZE (2 * sizeof(uint8_t) + sizeof(uint16_t) + sizeof(uint32_t))
 
@@ -257,7 +258,7 @@ void dacl_sort_into_canonical_order(struct security_ace *srclist, unsigned int n
                return;
 
        /* Sort so that non-inherited ACE's come first. */
-       qsort( srclist, num_aces, sizeof(srclist[0]), QSORT_CAST nt_ace_inherit_comp);
+       TYPESAFE_QSORT(srclist, num_aces, nt_ace_inherit_comp);
 
        /* Find the boundary between non-inherited ACEs. */
        for (i = 0; i < num_aces; i++ ) {
@@ -270,12 +271,10 @@ void dacl_sort_into_canonical_order(struct security_ace *srclist, unsigned int n
        /* i now points at entry number of the first inherited ACE. */
 
        /* Sort the non-inherited ACEs. */
-       if (i)
-               qsort( srclist, i, sizeof(srclist[0]), QSORT_CAST nt_ace_canon_comp);
+       TYPESAFE_QSORT(srclist, i, nt_ace_canon_comp);
 
        /* Now sort the inherited ACEs. */
-       if (num_aces - i)
-               qsort( &srclist[i], num_aces - i, sizeof(srclist[0]), QSORT_CAST nt_ace_canon_comp);
+       TYPESAFE_QSORT(&srclist[i], num_aces - i, nt_ace_canon_comp);
 }