]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
smb: client: fix regression with guest option
authorPaulo Alcantara <pc@manguebit.com>
Wed, 12 Mar 2025 13:51:31 +0000 (10:51 -0300)
committerSteve French <stfrench@microsoft.com>
Thu, 13 Mar 2025 13:40:24 +0000 (08:40 -0500)
When mounting a CIFS share with 'guest' mount option, mount.cifs(8)
will set empty password= and password2= options.  Currently we only
handle empty strings from user= and password= options, so the mount
will fail with

cifs: Bad value for 'password2'

Fix this by handling empty string from password2= option as well.

Link: https://bbs.archlinux.org/viewtopic.php?id=303927
Reported-by: Adam Williamson <awilliam@redhat.com>
Closes: https://lore.kernel.org/r/83c00b5fea81c07f6897a5dd3ef50fd3b290f56c.camel@redhat.com
Fixes: 35f834265e0d ("smb3: fix broken reconnect when password changing on the server by allowing password rotation")
Cc: stable@vger.kernel.org
Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/fs_context.c

index e9b286d9a7ba37298ca0b2a116e69879fe57cc33..457452b4d42da1c529c68f77c576b0a493778331 100644 (file)
@@ -171,6 +171,7 @@ const struct fs_parameter_spec smb3_fs_parameters[] = {
        fsparam_string("username", Opt_user),
        fsparam_string("pass", Opt_pass),
        fsparam_string("password", Opt_pass),
+       fsparam_string("pass2", Opt_pass2),
        fsparam_string("password2", Opt_pass2),
        fsparam_string("ip", Opt_ip),
        fsparam_string("addr", Opt_ip),
@@ -1131,6 +1132,9 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
                } else if (!strcmp("user", param->key) || !strcmp("username", param->key)) {
                        skip_parsing = true;
                        opt = Opt_user;
+               } else if (!strcmp("pass2", param->key) || !strcmp("password2", param->key)) {
+                       skip_parsing = true;
+                       opt = Opt_pass2;
                }
        }