Padding byte in cifs readx response
Christof Schmitt
cs at samba.org
Fri Aug 8 17:25:11 MDT 2014
On Fri, Aug 08, 2014 at 12:56:51PM -0700, Jeremy Allison wrote:
> On Thu, Aug 07, 2014 at 04:16:45PM -0700, Christof Schmitt wrote:
> >
> > Thanks. Attached is an updated patch series. I think the only remaining
> > issue is that 'make test' now fails against the source4 DC, the source3
> > file server should be good.
>
> One more comment. struct smb_request contains the 'cmd'
> field, which means that reply_outbuf() *knows* when it's
> creating an outbuf for a readX reply.
>
> Can't you just always add the pad byte inside:
>
> void reply_outbuf(struct smb_request *req, uint8 num_words, uint32 num_bytes)
> {
> char *outbuf;
> if (!create_outbuf(req, req, (const char *)req->inbuf, &outbuf, num_words,
> num_bytes)) {
> smb_panic("could not allocate output buffer\n");
> }
> req->outbuf = (uint8_t *)outbuf;
> }
>
> by adding 1 to num_bytes when cmd==readX and then
> using srv_set_message() or some version of the code
> inside there to fix up the outbuf at creation time.
Yes, that sounds like a good approach. I will use that in the next
update, it should also make the patch smaller.
> The talloc_realloc() in your patch really worries me.
Christof
More information about the samba-technical
mailing list