proc: mem_release() should check mm != NULL
authorOleg Nesterov <oleg@redhat.com>
Tue, 31 Jan 2012 16:14:38 +0000 (17:14 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Feb 2012 22:39:01 +0000 (14:39 -0800)
mem_release() can hit mm == NULL, add the necessary check.

Cc: stable@kernel.org
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/proc/base.c

index 9cde9edf9c4d40a4a3c20e3fb1c3758518092f98..c3617ea7830bad1632cfa9da39bf9b2cce3dba1f 100644 (file)
@@ -822,8 +822,8 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
 static int mem_release(struct inode *inode, struct file *file)
 {
        struct mm_struct *mm = file->private_data;
-
-       mmput(mm);
+       if (mm)
+               mmput(mm);
        return 0;
 }