[pve-devel] applied: [PATCH] Use enums for smbvers to prevent incorrect input

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Jun 6 16:10:18 CEST 2018


On 6/6/18 4:01 PM, Wolfgang Link wrote:
>> Thomas Lamprecht <t.lamprecht at proxmox.com> hat am 6. Juni 2018 um 15:51 geschrieben:
>>
>>
>> On 6/6/18 1:23 PM, Wolfgang Link wrote:
>>> ---
>>>  PVE/Storage/CIFSPlugin.pm | 3 ++-
>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/PVE/Storage/CIFSPlugin.pm b/PVE/Storage/CIFSPlugin.pm
>>> index cb7c844..2124c87 100644
>>> --- a/PVE/Storage/CIFSPlugin.pm
>>> +++ b/PVE/Storage/CIFSPlugin.pm
>>> @@ -104,8 +104,9 @@ sub properties {
>>>  	    maxLength => 256,
>>>  	},
>>>  	smbversion => {
>>> -	    description => "",
>>> +	    description => "SMB protokoll version",
>>
>> s/protokoll/protocol/
>>
>>>  	    type => 'string',
>>> +	    enum => ['2.0', '2.1', '3.0'],
>>
>> We use the following code to tell smbclient about what version to use with
>> the -m option.
>>
>> my $cmd = ['/usr/bin/smbclient', $servicename, '-d', '0', '-m'];
>> push @$cmd, $scfg->{smbversion} ? "smb".int($scfg->{smbversion}) : 'smb3';
>>
>> Thus an user could (validly) used '2', '3', '3.0.2', '3.1.1' for this and
>> it'd have worked, but after this patch the user gets an verification error.
>> While maybe to to probable it's still not ideal...
>> Should we justThus an user could  hope nobody did that?
> 
> All options besides '3.0', '2.1', '2.0' and '1.0' will end in an mount error
> Only '1.0' is a working option what we would remove.
> 

Ah, OK, missed that, thanks for clarifying! Applied with s/protokoll/protocol/
followup.

> PVE/Storage/CIFSPlugin.pm
> @@ 70 @@
>     push @$cmd, '-o', defined($smbver) ? "vers=$smbver" : "vers=3.0";
> 
> man mount.cifs under vers=
> vers=
>            SMB protocol version. Allowed values are:
> 
>            ·   1.0 - The classic CIFS/SMBv1 protocol. This is the default.
> 
>            ·   2.0 - The SMBv2.002 protocol. This was initially introduced in Windows Vista Service Pack 1, and Windows Server 2008. Note that the initial release version of Windows Vista spoke a slightly
>                different dialect (2.000) that is not supported.
> 
>            ·   2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2.
> 
>            ·   3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012.
> 
>            Note too that while this option governs the protocol version used, not all features of each version are available.
> 
> 
>>
>>>  	    optional => 1,
>>>  	},
>>>      };
>>>
>>





More information about the pve-devel mailing list