summaryrefslogtreecommitdiff
path: root/source/groupdb/aliasfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/groupdb/aliasfile.c')
-rw-r--r--source/groupdb/aliasfile.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/source/groupdb/aliasfile.c b/source/groupdb/aliasfile.c
index 4b8bbe3079f..2fb5a86a800 100644
--- a/source/groupdb/aliasfile.c
+++ b/source/groupdb/aliasfile.c
@@ -119,32 +119,29 @@ static char *get_alias_members(char *p, int *num_mem, LOCAL_GRP_MEMBER **members
fstring name;
if (num_mem == NULL || members == NULL)
- {
return NULL;
- }
(*num_mem) = 0;
(*members) = NULL;
- while (next_token(&p, name, ",", sizeof(fstring)))
- {
+ while (next_token(&p, name, ",", sizeof(fstring))) {
+ LOCAL_GRP_MEMBER *mbrs;
DOM_SID sid;
uint8 type;
- if (lookup_sid(name, &sid, &type))
- {
- (*members) = Realloc((*members), ((*num_mem)+1) * sizeof(LOCAL_GRP_MEMBER));
+ if (lookup_sid(name, &sid, &type)) {
+ mbrs = Realloc((*members), ((*num_mem)+1) * sizeof(LOCAL_GRP_MEMBER));
(*num_mem)++;
- }
- else
- {
+ } else {
DEBUG(0,("alias database: could not resolve alias named %s\n", name));
continue;
}
- if ((*members) == NULL)
- {
+ if (mbrs == NULL) {
+ if (*members)
+ free(*members);
return NULL;
- }
+ } else
+ (*members) = mbrs;
fstrcpy((*members)[(*num_mem)-1].name, name);
(*members)[(*num_mem)-1].sid_use = type;
sid_copy(&(*members)[(*num_mem)-1].sid, &sid);