[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: Marcin Slusarz <marcin.slusarz@gmail.com> Acked-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
dbdbb87636
commit
79ee9a8b2d
|
@ -97,9 +97,6 @@ cifs_read_super(struct super_block *sb, void *data,
|
|||
{
|
||||
struct inode *inode;
|
||||
struct cifs_sb_info *cifs_sb;
|
||||
#ifdef CONFIG_CIFS_DFS_UPCALL
|
||||
int len;
|
||||
#endif
|
||||
int rc = 0;
|
||||
|
||||
/* BB should we make this contingent on mount parm? */
|
||||
|
@ -117,15 +114,17 @@ cifs_read_super(struct super_block *sb, void *data,
|
|||
* complex operation (mount), and in case of fail
|
||||
* just exit instead of doing mount and attempting
|
||||
* undo it if this copy fails?*/
|
||||
len = strlen(data);
|
||||
cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
|
||||
if (cifs_sb->mountdata == NULL) {
|
||||
kfree(sb->s_fs_info);
|
||||
sb->s_fs_info = NULL;
|
||||
return -ENOMEM;
|
||||
if (data) {
|
||||
int len = strlen(data);
|
||||
cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
|
||||
if (cifs_sb->mountdata == NULL) {
|
||||
kfree(sb->s_fs_info);
|
||||
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
|
||||
|
||||
rc = cifs_mount(sb, cifs_sb, data, devname);
|
||||
|
|
Loading…
Reference in New Issue