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

Wolfgang Link w.link at proxmox.com
Wed Jun 6 16:01:21 CEST 2018


> 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.

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