mirror of
https://github.com/samba-team/samba.git
synced 2025-03-05 20:58:40 +03:00
Fix to debian bug #171071 - we had the wrong dereference on the pointer to be
Realloc()ed, causing it to fail. Big thanks to Sandor Sonfeld <sonf@linuxmail.org> for the debug, stack and valgrind traces! Andrew Bartlett (This used to be commit 7abca6d281da6388899f78e3440d7ce37bf2094e)
This commit is contained in:
parent
05f6c8dea1
commit
ac04f498a2
@ -678,10 +678,10 @@ static NTSTATUS get_user_groups_from_local_sam(const DOM_SID *user_sid,
|
||||
}
|
||||
|
||||
if (sys_getgrouplist(usr->pw_name, usr->pw_gid, *unix_groups, &n_unix_groups) == -1) {
|
||||
*unix_groups = Realloc(unix_groups, sizeof(gid_t) * n_unix_groups);
|
||||
*unix_groups = Realloc(*unix_groups, sizeof(gid_t) * n_unix_groups);
|
||||
if (sys_getgrouplist(usr->pw_name, usr->pw_gid, *unix_groups, &n_unix_groups) == -1) {
|
||||
DEBUG(0, ("get_user_groups_from_local_sam: failed to get the unix group list\n"));
|
||||
SAFE_FREE(unix_groups);
|
||||
SAFE_FREE(*unix_groups);
|
||||
passwd_free(&usr);
|
||||
return NT_STATUS_NO_SUCH_USER; /* what should this return value be? */
|
||||
}
|
||||
@ -695,7 +695,7 @@ static NTSTATUS get_user_groups_from_local_sam(const DOM_SID *user_sid,
|
||||
*groups = malloc(sizeof(DOM_SID) * n_unix_groups);
|
||||
if (!*groups) {
|
||||
DEBUG(0, ("get_user_group_from_local_sam: malloc() failed for DOM_SID list!\n"));
|
||||
SAFE_FREE(unix_groups);
|
||||
SAFE_FREE(*unix_groups);
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
}
|
||||
@ -704,7 +704,7 @@ static NTSTATUS get_user_groups_from_local_sam(const DOM_SID *user_sid,
|
||||
|
||||
for (i = 0; i < *n_groups; i++) {
|
||||
if (!gid_to_sid(&(*groups)[i], (*unix_groups)[i])) {
|
||||
DEBUG(1, ("get_user_groups_from_local_sam: failed to convert gid %ld to a sid!\n", (long int)unix_groups[i+1]));
|
||||
DEBUG(1, ("get_user_groups_from_local_sam: failed to convert gid %ld to a sid!\n", (long int)(*unix_groups)[i+1]));
|
||||
SAFE_FREE(groups);
|
||||
SAFE_FREE(unix_groups);
|
||||
return NT_STATUS_NO_SUCH_USER;
|
||||
|
Loading…
x
Reference in New Issue
Block a user