&num_entries, &ctr);
if (num_entries) {
- name_list = Realloc(name_list,
+ struct getpwent_user *tnl;
+
+ tnl = (struct getpwent_user *)Realloc(name_list,
sizeof(struct getpwent_user) *
(ent->num_sam_entries +
num_entries));
+
+ if (!tnl) {
+ DEBUG(0,("get_sam_user_entries: Realloc failed.\n"));
+ if (name_list)
+ free(name_list);
+ return WINBINDD_ERROR;
+ } else
+ name_list = tnl;
}
for (i = 0; i < num_entries; i++) {
enum winbindd_result winbindd_list_users(struct winbindd_cli_state *state)
{
- struct winbindd_domain *domain;
- SAM_DISPINFO_CTR ctr;
+ struct winbindd_domain *domain;
+ SAM_DISPINFO_CTR ctr;
SAM_DISPINFO_1 info1;
- uint32 num_entries = 0, total_entries = 0;
+ uint32 num_entries = 0, total_entries = 0;
char *ted, *extra_data = NULL;
int extra_data_len = 0;
DEBUG(3, ("[%5d]: list users\n", state->pid));
- /* Enumerate over trusted domains */
+ /* Enumerate over trusted domains */
ctr.sam.info1 = &info1;
- for (domain = domain_list; domain; domain = domain->next) {
+ for (domain = domain_list; domain; domain = domain->next) {
uint32 status, start_ndx = 0;
/* Skip domains other than WINBINDD_DOMAIN environment
continue;
}
- /* Query display info */
+ /* Query display info */
do {
int i;