NFS: null dereference in dev_remove()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 13 Mar 2012 17:18:48 +0000 (20:18 +0300)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 13 Mar 2012 19:33:08 +0000 (15:33 -0400)
In commit 5ffaf85541 "NFS: replace global bl_wq with per-net one" we
made "msg" a pointer instead of a struct stored in stack memory.  But we
forgot to change the memset() here so we're still clearing stack memory
instead clearing the struct like we intended.  It will lead to a kernel
crash.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/blocklayout/blocklayoutdm.c

index 30fc22a..737d839 100644 (file)
@@ -54,7 +54,7 @@ static void dev_remove(struct net *net, dev_t dev)
        dprintk("Entering %s\n", __func__);
 
        bl_pipe_msg.bl_wq = &nn->bl_wq;
-       memset(&msg, 0, sizeof(*msg));
+       memset(msg, 0, sizeof(*msg));
        msg->data = kzalloc(1 + sizeof(bl_umount_request), GFP_NOFS);
        if (!msg->data)
                goto out;