Commit 79ee9a8b authored by Steve French's avatar Steve French

[CIFS] cifs: fix oops on mount when CONFIG_CIFS_DFS_UPCALL is enabled

simple "mount -t cifs //xxx /mnt" oopsed on strlen of options
http://kerneloops.org/guilty.php?guilty=cifs_get_sb&version=2.6.25-release&start=16711 \
68&end=1703935&class=oops
Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
Acked-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent dbdbb876
...@@ -97,9 +97,6 @@ cifs_read_super(struct super_block *sb, void *data, ...@@ -97,9 +97,6 @@ cifs_read_super(struct super_block *sb, void *data,
{ {
struct inode *inode; struct inode *inode;
struct cifs_sb_info *cifs_sb; struct cifs_sb_info *cifs_sb;
#ifdef CONFIG_CIFS_DFS_UPCALL
int len;
#endif
int rc = 0; int rc = 0;
/* BB should we make this contingent on mount parm? */ /* BB should we make this contingent on mount parm? */
...@@ -117,15 +114,17 @@ cifs_read_super(struct super_block *sb, void *data, ...@@ -117,15 +114,17 @@ cifs_read_super(struct super_block *sb, void *data,
* complex operation (mount), and in case of fail * complex operation (mount), and in case of fail
* just exit instead of doing mount and attempting * just exit instead of doing mount and attempting
* undo it if this copy fails?*/ * undo it if this copy fails?*/
len = strlen(data); if (data) {
cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL); int len = strlen(data);
if (cifs_sb->mountdata == NULL) { cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
kfree(sb->s_fs_info); if (cifs_sb->mountdata == NULL) {
sb->s_fs_info = NULL; kfree(sb->s_fs_info);
return -ENOMEM; sb->s_fs_info = NULL;
return -ENOMEM;
}
strncpy(cifs_sb->mountdata, data, len + 1);
cifs_sb->mountdata[len] = '\0';
} }
strncpy(cifs_sb->mountdata, data, len + 1);
cifs_sb->mountdata[len] = '\0';
#endif #endif
rc = cifs_mount(sb, cifs_sb, data, devname); rc = cifs_mount(sb, cifs_sb, data, devname);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment