Patch: Move the handling of svhdx to vfs_default.c

Steve French smfrench at gmail.com
Fri Oct 2 01:07:44 UTC 2015


With max protocols set to 3.0 and the patch below (to allow negotiate
protocol to work with Windows) you can create a vhdx image file with
HyperV

On Thu, Oct 1, 2015 at 8:06 PM, Steve French <smfrench at gmail.com> wrote:
> Why do we return an error when we don't recognize a create context
> (rather than just ignore it as Microsoft servers do)?
>
> MS-SMB2 says the following (and obviously Windows ignores AAPL rather
> than returning an error, so unknown contexts can or should be ignored)
>
> "<247> Section 3.3.5.9: Windows Vista SP1, Windows Server 2008,
> Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012
> ignore create contexts having a NameLength greater than 4 and ignore
> create contexts with a length of 4 that are not specified "
>
> HyperV in creating a VM (at least from Windows 10 MMC) fails on the
> open/create of the image over SMB3 due to us returning
> INVALID_DEVICE_REQUEST due to the unrecognized create context (for
> SVHDXOpenDeviceContext).  This is not actually running the VM, just
> creating an image file on a share.
>
> Setting max protocols to 3.0 does avoid this problem (although it
> breaks due to a more serious Samba bug in parsing negprot - so you
> can't negotiate protocol with recent Windows to Samba when max
> protocols is set.  Samba needs the patch below
>
> diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c
> index 2ea997e..1a97b2e 100644
> --- a/source3/smbd/smb2_server.c
> +++ b/source3/smbd/smb2_server.c
> @@ -2096,9 +2096,7 @@ NTSTATUS smbd_smb2_request_dispatch(struct
> smbd_smb2_request *req)
>                 allowed_flags |= SMB2_HDR_FLAG_PRIORITY_MASK;
>         }
>         if (opcode == SMB2_OP_NEGPROT) {
> -               if (lp_server_max_protocol() >= PROTOCOL_SMB3_11) {
> -                       allowed_flags |= SMB2_HDR_FLAG_PRIORITY_MASK;
> -               }
> +               allowed_flags |= SMB2_HDR_FLAG_PRIORITY_MASK;
>         }
>         if (opcode == SMB2_OP_CANCEL) {
>                 allowed_flags |= SMB2_HDR_FLAG_ASYNC;
>
> On Wed, Aug 26, 2015 at 10:35 AM, Richard Sharpe
> <realrichardsharpe at gmail.com> wrote:
>> Hi folks,
>>
>> I have resolved the style issue and it now does not crash when SMB
>> (rather than SMB2) is in use.
>>
>> However, re-review is needed because things changed.
>>
>> --
>> Regards,
>> Richard Sharpe
>> (何以解憂?唯有杜康。--曹操)
>
>
>
> --
> Thanks,
>
> Steve



-- 
Thanks,

Steve



More information about the samba-technical mailing list