summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/util.c35
-rw-r--r--source3/lib/util_sid.c2
2 files changed, 36 insertions, 1 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 9e13e819be..9e01f0f095 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -3261,3 +3261,38 @@ BOOL add_chars_to_array(uint32 *len, char ***array, const char *name)
}
return True;
}
+
+BOOL add_sid_to_array(uint32 *len, DOM_SID ***array, const DOM_SID *sid)
+{
+ if (len == NULL || array == NULL)
+ {
+ return False;
+ }
+
+ (*array) = (char**)Realloc((*array), ((*len)+1) * sizeof((*array)[0]));
+
+ if ((*array) != NULL)
+ {
+ (*array)[(*len)] = sid_dup(sid);
+ (*len)++;
+ return True;
+ }
+ return True;
+}
+
+void free_sid_array(uint32 num_entries, DOM_SID **entries)
+{
+ uint32 i;
+ if (entries != NULL)
+ {
+ for (i = 0; i < num_entries; i++)
+ {
+ if (entries[i] != NULL)
+ {
+ free(entries[i]);
+ }
+ }
+ free(entries);
+ }
+}
+
diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c
index 3be81ce811..295fd0efac 100644
--- a/source3/lib/util_sid.c
+++ b/source3/lib/util_sid.c
@@ -231,7 +231,7 @@ int sid_size(const DOM_SID *sid)
Duplicates a sid - mallocs the target.
*****************************************************************/
-DOM_SID *sid_dup(DOM_SID *src)
+DOM_SID *sid_dup(const DOM_SID *src)
{
DOM_SID *dst;