summaryrefslogtreecommitdiffstats
path: root/fs/cifs/connect.c
diff options
context:
space:
mode:
authorJeff Layton2012-11-26 17:09:57 +0100
committerSteve French2012-12-05 20:27:31 +0100
commit6ee9542a8701a906dbe5141bf1e1ad395d957222 (patch)
treeae01aed2b9e2f43eb218ef131c9dfeac25c7c45c /fs/cifs/connect.c
parentcifs: remove unneeded address argument from cifs_find_tcp_session and match_s... (diff)
downloadkernel-qcow2-linux-6ee9542a8701a906dbe5141bf1e1ad395d957222.tar.gz
kernel-qcow2-linux-6ee9542a8701a906dbe5141bf1e1ad395d957222.tar.xz
kernel-qcow2-linux-6ee9542a8701a906dbe5141bf1e1ad395d957222.zip
cifs: always zero out smb_vol before parsing options
Currently, the code relies on the callers to do that and they all do, but this will ensure that it's always done. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r--fs/cifs/connect.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 87fa16549f27..290c13442f75 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1122,6 +1122,9 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
separator[1] = 0;
delim = separator[0];
+ /* ensure we always start with zeroed-out smb_vol */
+ memset(vol, 0, sizeof(*vol));
+
/*
* does not have to be perfect mapping since field is
* informational, only used for servers that do not support
@@ -3314,7 +3317,6 @@ expand_dfs_referral(const unsigned int xid, struct cifs_ses *ses,
mdata = NULL;
} else {
cleanup_volume_info_contents(volume_info);
- memset(volume_info, '\0', sizeof(*volume_info));
rc = cifs_setup_volume_info(volume_info, mdata,
fake_devname);
}
@@ -3336,7 +3338,6 @@ cifs_setup_volume_info(struct smb_vol *volume_info, char *mount_data,
if (cifs_parse_mount_options(mount_data, devname, volume_info))
return -EINVAL;
-
if (volume_info->nullauth) {
cFYI(1, "Anonymous login");
kfree(volume_info->username);
@@ -3373,7 +3374,7 @@ cifs_get_volume_info(char *mount_data, const char *devname)
int rc;
struct smb_vol *volume_info;
- volume_info = kzalloc(sizeof(struct smb_vol), GFP_KERNEL);
+ volume_info = kmalloc(sizeof(struct smb_vol), GFP_KERNEL);
if (!volume_info)
return ERR_PTR(-ENOMEM);