*num_domains = r.num_domains;
*trusts = TALLOC_ARRAY(mem_ctx, struct ds_domain_trust, r.num_domains);
+ if (*trusts == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
for ( i=0; i< *num_domains; i++ ) {
(*trusts)[i].flags = r.domains.trusts[i].flags;
(*trusts)[i].parent_index = r.domains.trusts[i].parent_index;
privileges = TALLOC_ARRAY( mem_ctx, fstring, *count );
names = TALLOC_ARRAY( mem_ctx, char *, *count );
+ if ((privileges == NULL) || (names == NULL)) {
+ TALLOC_FREE(privileges);
+ TALLOC_FREE(names);
+ return NT_STATUS_NO_MEMORY;
+ }
+
for ( i=0; i<*count; i++ ) {
UNISTR4 *uni_string = &r.rights->strings[i];
*names = TALLOC_ARRAY(mem_ctx, char *, r.num_names1);
*name_types = TALLOC_ARRAY(mem_ctx, uint32, r.num_names1);
+ if ((*names == NULL) || (*name_types == NULL)) {
+ TALLOC_FREE(*names);
+ TALLOC_FREE(*name_types);
+ return NT_STATUS_NO_MEMORY;
+ }
+
for (i = 0; i < r.num_names1; i++) {
fstring tmp;
*rids = TALLOC_ARRAY(mem_ctx, uint32, r.num_rids1);
*rid_types = TALLOC_ARRAY(mem_ctx, uint32, r.num_rids1);
+ if ((*rids == NULL) || (*rid_types == NULL)) {
+ TALLOC_FREE(*rids);
+ TALLOC_FREE(*rid_types);
+ return NT_STATUS_NO_MEMORY;
+ }
+
for (i = 0; i < r.num_rids1; i++) {
(*rids)[i] = r.rids[i];
(*rid_types)[i] = r.types[i];
switch(info_level) {
case 1:
ctr->share.info1 = TALLOC_ARRAY(mem_ctx, SRV_SHARE_INFO_1, ctr->num_entries);
+ if (ctr->share.info1 == NULL) {
+ return WERR_NOMEM;
+ }
memset(ctr->share.info1, 0, sizeof(SRV_SHARE_INFO_1));
break;
case 2:
ctr->share.info2 = TALLOC_ARRAY(mem_ctx, SRV_SHARE_INFO_2, ctr->num_entries);
+ if (ctr->share.info2 == NULL) {
+ return WERR_NOMEM;
+ }
memset(ctr->share.info2, 0, sizeof(SRV_SHARE_INFO_2));
/* adding info-level 502 here */
case 502:
ctr->share.info502 = TALLOC_ARRAY(mem_ctx, SRV_SHARE_INFO_502, ctr->num_entries);
+
+ if (ctr->share.info502 == NULL) {
+ return WERR_NOMEM;
+ }
memset(ctr->share.info502, 0, sizeof(SRV_SHARE_INFO_502));
switch(file_level) {
case 3:
ctr->file.info3 = TALLOC_ARRAY(mem_ctx, SRV_FILE_INFO_3, ctr->num_entries);
+ if (ctr->file.info3 == NULL) {
+ return WERR_NOMEM;
+ }
memset(ctr->file.info3, 0,
sizeof(SRV_FILE_INFO_3) * ctr->num_entries);