data = tdb_fetch_bystring( netsamlogon_tdb, keystr );
if ( data.dptr ) {
-
- if ( (user = SMB_MALLOC_P(NET_USER_INFO_3)) == NULL )
+
+
+ user = TALLOC_ZERO_P(mem_ctx, NET_USER_INFO_3);
+ if (user == NULL) {
return NULL;
-
+ }
+
prs_init( &ps, 0, mem_ctx, UNMARSHALL );
prs_give_memory( &ps, (char *)data.dptr, data.dsize, True );
result = (user != NULL);
talloc_destroy(mem_ctx);
- SAFE_FREE(user);
return result;
}
}
if (info3->num_groups == 0) {
- SAFE_FREE(info3);
+ TALLOC_FREE(info3);
return NT_STATUS_UNSUCCESSFUL;
}
sid_compose(&primary_group, &info3->dom_sid.sid, info3->user_rid);
if (!add_sid_to_array(mem_ctx, &primary_group, user_sids, &num_groups)) {
- SAFE_FREE(info3);
+ TALLOC_FREE(info3);
return NT_STATUS_NO_MEMORY;
}
if (!add_sid_to_array(mem_ctx, &group_sid, user_sids,
&num_groups)) {
- SAFE_FREE(info3);
+ TALLOC_FREE(info3);
return NT_STATUS_NO_MEMORY;
}
}
- SAFE_FREE(info3);
+ TALLOC_FREE(info3);
*p_num_groups = num_groups;
status = (user_sids != NULL) ? NT_STATUS_OK : NT_STATUS_NO_MEMORY;