return False;
}
- info->rids = TALLOC_ARRAY(ps->mem_ctx, uint32, info->num_members2);
-
- if (info->rids == NULL) {
- DEBUG(0, ("out of memory allocating %d rids\n",
- info->num_members2));
- return False;
- }
+ if (UNMARSHALLING(ps)) {
+ if (info->num_members2) {
+ info->rids = TALLOC_ARRAY(ps->mem_ctx, uint32, info->num_members2);
+
+ if (info->rids == NULL) {
+ DEBUG(0, ("out of memory allocating %d rids\n",
+ info->num_members2));
+ return False;
+ }
+ } else {
+ info->rids = NULL;
+ }
+ }
for (i = 0; i < info->num_members2; i++)
{
return False;
}
- info->attribs = TALLOC_ARRAY(ps->mem_ctx, uint32, info->num_members3);
-
- if (info->attribs == NULL) {
- DEBUG(0, ("out of memory allocating %d attribs\n",
- info->num_members3));
- return False;
- }
+ if (UNMARSHALLING(ps)) {
+ if (info->num_members3) {
+ info->attribs = TALLOC_ARRAY(ps->mem_ctx, uint32, info->num_members3);
+
+ if (info->attribs == NULL) {
+ DEBUG(0, ("out of memory allocating %d attribs\n",
+ info->num_members3));
+ return False;
+ }
+ } else {
+ info->attribs = NULL;
+ }
+ }
for (i = 0; i < info->num_members3; i++)
{
return False;
}
- info->ptr_sids = TALLOC_ARRAY(ps->mem_ctx, uint32, info->num_sids);
+ if (UNMARSHALLING(ps)) {
+ if (info->num_sids) {
+ info->ptr_sids = TALLOC_ARRAY(ps->mem_ctx, uint32, info->num_sids);
- if (info->ptr_sids == NULL) {
- DEBUG(0, ("out of memory allocating %d ptr_sids\n",
- info->num_sids));
- return False;
- }
+ if (info->ptr_sids == NULL) {
+ DEBUG(0, ("out of memory allocating %d ptr_sids\n",
+ info->num_sids));
+ return False;
+ }
+ } else {
+ info->ptr_sids = NULL;
+ }
+ }
for (i = 0; i < info->num_sids; i++)
{
return False;
}
- info->sids = TALLOC_ARRAY(ps->mem_ctx, DOM_SID2, info->num_sids);
-
- if (info->sids == NULL) {
- DEBUG(0, ("error allocating %d sids\n",
- info->num_sids));
- return False;
- }
+ if (UNMARSHALLING(ps)) {
+ if (info->num_sids) {
+ info->sids = TALLOC_ARRAY(ps->mem_ctx, DOM_SID2, info->num_sids);
+
+ if (info->sids == NULL) {
+ DEBUG(0, ("error allocating %d sids\n",
+ info->num_sids));
+ return False;
+ }
+ } else {
+ info->sids = NULL;
+ }
+ }
for (i = 0; i < info->num_sids; i++)
{
return False;
}
- if (r_s->num_deltas2 > 0) {
- r_s->hdr_deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_HDR, r_s->num_deltas2);
- if (r_s->hdr_deltas == NULL) {
- DEBUG(0, ("error tallocating memory "
- "for %d delta headers\n",
- r_s->num_deltas2));
- return False;
- }
- }
+ if (UNMARSHALLING(ps)) {
+ if (r_s->num_deltas2) {
+ r_s->hdr_deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_HDR, r_s->num_deltas2);
+ if (r_s->hdr_deltas == NULL) {
+ DEBUG(0, ("error tallocating memory "
+ "for %d delta headers\n",
+ r_s->num_deltas2));
+ return False;
+ }
+ } else {
+ r_s->hdr_deltas = NULL;
+ }
+ }
for (i = 0; i < r_s->num_deltas2; i++)
{
return False;
}
- if (r_s->num_deltas2 > 0) {
- r_s->deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_CTR, r_s->num_deltas2);
- if (r_s->deltas == NULL) {
- DEBUG(0, ("error tallocating memory "
- "for %d deltas\n",
- r_s->num_deltas2));
- return False;
- }
- }
+ if (UNMARSHALLING(ps)) {
+ if (r_s->num_deltas2) {
+ r_s->deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_CTR, r_s->num_deltas2);
+ if (r_s->deltas == NULL) {
+ DEBUG(0, ("error tallocating memory "
+ "for %d deltas\n",
+ r_s->num_deltas2));
+ return False;
+ }
+ } else {
+ r_s->deltas = NULL;
+ }
+ }
for (i = 0; i < r_s->num_deltas2; i++)
{
if (r_s->ptr_deltas != 0)
{
- if (r_s->num_deltas > 0) {
- r_s->hdr_deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_HDR, r_s->num_deltas);
- if (r_s->hdr_deltas == NULL) {
- DEBUG(0, ("error tallocating memory "
- "for %d delta headers\n",
- r_s->num_deltas));
- return False;
- }
- }
+ if (UNMARSHALLING(ps)) {
+ if (r_s->num_deltas) {
+ r_s->hdr_deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_HDR, r_s->num_deltas);
+ if (r_s->hdr_deltas == NULL) {
+ DEBUG(0, ("error tallocating memory "
+ "for %d delta headers\n",
+ r_s->num_deltas));
+ return False;
+ }
+ } else {
+ r_s->hdr_deltas = NULL;
+ }
+ }
for (i = 0; i < r_s->num_deltas; i++)
{
ps, depth);
}
- if (r_s->num_deltas > 0) {
- r_s->deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_CTR, r_s->num_deltas);
- if (r_s->deltas == NULL) {
- DEBUG(0, ("error tallocating memory "
- "for %d deltas\n",
- r_s->num_deltas));
- return False;
- }
- }
+ if (UNMARSHALLING(ps)) {
+ if (r_s->num_deltas) {
+ r_s->deltas = TALLOC_ARRAY(ps->mem_ctx, SAM_DELTA_CTR, r_s->num_deltas);
+ if (r_s->deltas == NULL) {
+ DEBUG(0, ("error tallocating memory "
+ "for %d deltas\n",
+ r_s->num_deltas));
+ return False;
+ }
+ } else {
+ r_s->deltas = NULL;
+ }
+ }
for (i = 0; i < r_s->num_deltas; i++)
{