diff options
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/util.c | 35 | ||||
-rw-r--r-- | source3/lib/util_sid.c | 2 |
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; |