diff mbox

CIFS: Fix the conflict between rwpidforward and rw mount options

Message ID 1314461920-6116-1-git-send-email-piastry@etersoft.ru (mailing list archive)
State New, archived
Headers show

Commit Message

Pavel Shilovsky Aug. 27, 2011, 4:18 p.m. UTC
Both these options are started with "rw" - that's why the first one
isn't switched on even if it is specified. Fix this by adding a length
check for "rw" option check.

Cc: <stable@kernel.org>
Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
---
 fs/cifs/connect.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Comments

Pavel Shilovsky Aug. 27, 2011, 4:21 p.m. UTC | #1
2011/8/27 Pavel Shilovsky <piastry@etersoft.ru>:
> Both these options are started with "rw" - that's why the first one
> isn't switched on even if it is specified. Fix this by adding a length
> check for "rw" option check.
>
> Cc: <stable@kernel.org>
> Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
> ---
>  fs/cifs/connect.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index 633c246..f4af4cc 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -1298,7 +1298,7 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
>                        /* ignore */
>                } else if (strnicmp(data, "guest", 5) == 0) {
>                        /* ignore */
> -               } else if (strnicmp(data, "rw", 2) == 0) {
> +               } else if (strnicmp(data, "rw", 2) == 0 && strlen(data) == 2) {
>                        /* ignore */
>                } else if (strnicmp(data, "ro", 2) == 0) {
>                        /* ignore */
> @@ -1401,7 +1401,7 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
>                        vol->server_ino = 1;
>                } else if (strnicmp(data, "noserverino", 9) == 0) {
>                        vol->server_ino = 0;
> -               } else if (strnicmp(data, "rwpidforward", 4) == 0) {
> +               } else if (strnicmp(data, "rwpidforward", 12) == 0) {
>                        vol->rwpidforward = 1;
>                } else if (strnicmp(data, "cifsacl", 7) == 0) {
>                        vol->cifs_acl = 1;
> --
> 1.7.1
>
>

Sorry for the spam - forgot to change the patch version.
diff mbox

Patch

diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 633c246..f4af4cc 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1298,7 +1298,7 @@  cifs_parse_mount_options(const char *mountdata, const char *devname,
 			/* ignore */
 		} else if (strnicmp(data, "guest", 5) == 0) {
 			/* ignore */
-		} else if (strnicmp(data, "rw", 2) == 0) {
+		} else if (strnicmp(data, "rw", 2) == 0 && strlen(data) == 2) {
 			/* ignore */
 		} else if (strnicmp(data, "ro", 2) == 0) {
 			/* ignore */
@@ -1401,7 +1401,7 @@  cifs_parse_mount_options(const char *mountdata, const char *devname,
 			vol->server_ino = 1;
 		} else if (strnicmp(data, "noserverino", 9) == 0) {
 			vol->server_ino = 0;
-		} else if (strnicmp(data, "rwpidforward", 4) == 0) {
+		} else if (strnicmp(data, "rwpidforward", 12) == 0) {
 			vol->rwpidforward = 1;
 		} else if (strnicmp(data, "cifsacl", 7) == 0) {
 			vol->cifs_acl = 1;