summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommi Rantala <tt.rantala@gmail.com>2013-02-08 13:41:25 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-02-08 12:17:52 -0800
commit69a7c50369ec1529e9cd6ca3989b254d78073379 (patch)
treef00496b18c58a455be0e949f52416fd71561b003
parentb12da2e4337ce235c4c5951b2217330587f3dda4 (diff)
staging: dgrp: use correct release op for /proc/dgrp/info
Trinity (the syscall fuzzer) discovered that reading /proc/dgrp/info was leaking some memory. Fix by using the correct release op in info_proc_file_ops. unreferenced object 0xffff88003b6696e0 (size 32): comm "cat", pid 2321, jiffies 4294705179 (age 29.434s) hex dump (first 32 bytes): 40 79 1c 81 ff ff ff ff 60 79 1c 81 ff ff ff ff @y......`y...... 50 79 1c 81 ff ff ff ff b0 62 89 81 ff ff ff ff Py.......b...... backtrace: [<ffffffff81c7e3b1>] kmemleak_alloc+0x21/0x50 [<ffffffff811955cb>] kmem_cache_alloc_trace+0x11b/0x190 [<ffffffff811c87dc>] single_open+0x3c/0xc0 [<ffffffff81896495>] info_proc_open+0x15/0x20 [<ffffffff8120c6d7>] proc_reg_open+0xb7/0x160 [<ffffffff811a1a5c>] do_dentry_open+0x1cc/0x280 [<ffffffff811a296a>] finish_open+0x4a/0x60 [<ffffffff811b14d7>] do_last+0xb07/0xdb0 [<ffffffff811b1842>] path_openat+0xc2/0x4f0 [<ffffffff811b1cac>] do_filp_open+0x3c/0xa0 [<ffffffff811a2dcc>] do_sys_open+0x11c/0x1c0 [<ffffffff811a2e8c>] sys_open+0x1c/0x20 [<ffffffff81ca3d69>] system_call_fastpath+0x16/0x1b [<ffffffffffffffff>] 0xffffffffffffffff Signed-off-by: Tommi Rantala <tt.rantala@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/dgrp/dgrp_specproc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/dgrp/dgrp_specproc.c b/drivers/staging/dgrp/dgrp_specproc.c
index e09fc9cf318b..cc868a2933eb 100644
--- a/drivers/staging/dgrp/dgrp_specproc.c
+++ b/drivers/staging/dgrp/dgrp_specproc.c
@@ -102,7 +102,7 @@ static struct file_operations info_proc_file_ops = {
.open = info_proc_open,
.read = seq_read,
.llseek = seq_lseek,
- .release = seq_release,
+ .release = single_release,
};
static struct file_operations nodeinfo_proc_file_ops = {