Andrew,

> > s = va_arg(ap, char *);
> > - pointers[i].data = s;
> > + pointers[i].data = (void *)s;
> > pointers[i].length = strlen(s)+1;
> > head_size += pointers[i].length;
> > break;

>
> a cast to void doesn't quite seem right here. DATA_BLOB.data is
> uint8_t, so shouldn't this be a uint8_t cast?


you're right about this one

> > - pstring param, data;
> > + uint8_t param[1024], data[1024];
> > NTSTATUS status;
> >
> > memset(data, 0, sizeof(data));

>
> I'm worried these changes are just going to make it harder to find and
> eliminate pstrings from the source.


In this case the use of pstring was wrong in the first place, as these
are binary buffers that are never used as strings. So I think this
change is reasonable.

Cheers, Tridge