lkml.org 
[lkml]   [2008]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectFwd: [patch (for 2.6.26?) 1/1] cifs: fix oops on mount when CONFIG_CIFS_DFS_UPCALL is enabled
I don't have the original note (ie patch without whitespace mangled by
the mailers) that I can ack to Linus on this but would like it merged
into mainline as an individual patch (my cifs-2.6.git tree has
additional patches in it that I don't want to merged into
linux-2.6.git yet).


---------- Forwarded message ----------
From: Steve French <smfrench@gmail.com>
Date: Tue, Jun 10, 2008 at 11:47 AM
Subject: Re: [patch (for 2.6.26?) 1/1] cifs: fix oops on mount when
CONFIG_CIFS_DFS_UPCALL is enabled
To: akpm@linux-foundation.org
Cc: sfrench@us.ibm.com, marcin.slusarz@gmail.com, sfrench@samba.org,
stable@kernel.org


ACK

On Mon, Jun 9, 2008 at 6:48 PM, <akpm@linux-foundation.org> wrote:
> From: Marcin Slusarz <marcin.slusarz@gmail.com>
>
> 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=1671168&end=1703935&class=oops
>
> Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
> Cc: Steve French <sfrench@samba.org>
> Cc: <stable@kernel.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> fs/cifs/cifsfs.c | 21 ++++++++++-----------
> 1 file changed, 10 insertions(+), 11 deletions(-)
>
> diff -puN fs/cifs/cifsfs.c~cifs-fix-oops-on-mount-when-config_cifs_dfs_upcall-is-enabled fs/cifs/cifsfs.c
> --- a/fs/cifs/cifsfs.c~cifs-fix-oops-on-mount-when-config_cifs_dfs_upcall-is-enabled
> +++ a/fs/cifs/cifsfs.c
> @@ -124,9 +124,6 @@ cifs_read_super(struct super_block *sb,
> {
> 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? */
> @@ -144,15 +141,17 @@ cifs_read_super(struct super_block *sb,
> * 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);
> _
>



--
Thanks,

Steve



--
Thanks,

Steve


\
 
 \ /
  Last update: 2008-06-10 19:17    [W:0.042 / U:0.116 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site