aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/connect.c
diff options
context:
space:
mode:
authorSachin Prabhu <sprabhu@redhat.com>2012-04-03 20:58:56 -0400
committerSteve French <sfrench@us.ibm.com>2012-04-03 21:46:09 -0400
commite4b41fb9dafb9af4fecb602bf73d858ab651eeed (patch)
tree60f08a6ffab5686bfe4256fa8d4f838a09e2698f /fs/cifs/connect.c
parent1023807458b6365e28c66095648e1b66e04a4259 (diff)
Fix UNC parsing on mount
The code cleanup of cifs_parse_mount_options resulted in a new bug being introduced in the parsing of the UNC. This results in vol->UNC being modified before vol->UNC was allocated. Reported-by: Steve French <smfrench@gmail.com> Signed-off-by: Sachin Prabhu <sprabhu@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r--fs/cifs/connect.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 0511fdbdf92..d81e933a796 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1648,6 +1648,13 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
1648 goto cifs_parse_mount_err; 1648 goto cifs_parse_mount_err;
1649 } 1649 }
1650 1650
1651 vol->UNC = kmalloc(temp_len+1, GFP_KERNEL);
1652 if (vol->UNC == NULL) {
1653 printk(KERN_WARNING "CIFS: no memory for UNC\n");
1654 goto cifs_parse_mount_err;
1655 }
1656 strcpy(vol->UNC, string);
1657
1651 if (strncmp(string, "//", 2) == 0) { 1658 if (strncmp(string, "//", 2) == 0) {
1652 vol->UNC[0] = '\\'; 1659 vol->UNC[0] = '\\';
1653 vol->UNC[1] = '\\'; 1660 vol->UNC[1] = '\\';
@@ -1657,13 +1664,6 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
1657 goto cifs_parse_mount_err; 1664 goto cifs_parse_mount_err;
1658 } 1665 }
1659 1666
1660 vol->UNC = kmalloc(temp_len+1, GFP_KERNEL);
1661 if (vol->UNC == NULL) {
1662 printk(KERN_WARNING "CIFS: no memory "
1663 "for UNC\n");
1664 goto cifs_parse_mount_err;
1665 }
1666 strcpy(vol->UNC, string);
1667 break; 1667 break;
1668 case Opt_domain: 1668 case Opt_domain:
1669 string = match_strdup(args); 1669 string = match_strdup(args);