|
@@ -1575,14 +1575,24 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
|
|
|
}
|
|
|
break;
|
|
|
case Opt_blank_pass:
|
|
|
- vol->password = NULL;
|
|
|
- break;
|
|
|
- case Opt_pass:
|
|
|
/* passwords have to be handled differently
|
|
|
* to allow the character used for deliminator
|
|
|
* to be passed within them
|
|
|
*/
|
|
|
|
|
|
+ /*
|
|
|
+ * Check if this is a case where the password
|
|
|
+ * starts with a delimiter
|
|
|
+ */
|
|
|
+ tmp_end = strchr(data, '=');
|
|
|
+ tmp_end++;
|
|
|
+ if (!(tmp_end < end && tmp_end[1] == delim)) {
|
|
|
+ /* No it is not. Set the password to NULL */
|
|
|
+ vol->password = NULL;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ /* Yes it is. Drop down to Opt_pass below.*/
|
|
|
+ case Opt_pass:
|
|
|
/* Obtain the value string */
|
|
|
value = strchr(data, '=');
|
|
|
value++;
|