Fix number parsing in cifs_parse_mount_options

The function kstrtoul() used to parse number strings in the mount
option parser is set to expect a base 10 number . This treats the octal
numbers passed for mount options such as file_mode as base10 numbers
leading to incorrect behavior.

Change the 'base' argument passed to kstrtoul from 10 to 0 to
allow it to auto-detect the base of the number passed.

Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
Acked-by: Jeff Layton <jlayton@samba.org>
Reported-by: Chris Clayton <chris2553@googlemail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
Sachin Prabhu 2012-04-13 14:04:32 +01:00 committed by Steve French
parent 4fe9e9639d
commit bfa890a3cd

View File

@ -1123,7 +1123,7 @@ static int get_option_ul(substring_t args[], unsigned long *option)
string = match_strdup(args); string = match_strdup(args);
if (string == NULL) if (string == NULL)
return -ENOMEM; return -ENOMEM;
rc = kstrtoul(string, 10, option); rc = kstrtoul(string, 0, option);
kfree(string); kfree(string);
return rc; return rc;