On Mon, Feb 25, 2019 at 08:43:33AM +0100, Stefan Metzmacher wrote: > Yes, that correct, I missed that sorry. > > Does your client still work without that chance, just sending 8 zero > bytes? Or does that fail? > > I guess it will fail at > > + if ((inbuflen % 16) != 0) { > + return smbd_smb2_request_error( > + req, NT_STATUS_INVALID_PARAMETER); > + } Yes, it's supposed to fail there :-). > I think we need to have something like this before: > > static const uint64_t reserved64; > DATA_BLOB reserved = data_blob_const(&reserved64, > sizeof(reserved6464)); > int cmp; > > cmp = data_blob_cmp(&in_posix->data, &reserved_value); > if (cmp == 0) { > inbuf = (const uint8_t *)SMB2_CREATE_TAG_POSIX; > inbuflen = 16; > outbuf = reserved.blob; > outbuflen = reserved.length; > } I don't want to do that. None of this code is in any mainline/master/released code bases so I don't want to support what is "test" code in the Linux client. We are close to the point of making something that we can commit to support going forward, but we're not there yet. So I really don't want to support any Negprot variants other than the latest "list of create contexts" version.