Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1411093
| From | Zhouyi Zhou <yizhouzhou@ict.ac.cn> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH] relay: fix potential memory leak |
| Date | 2016-06-01 13:00 +0200 |
| Message-ID | <rFc2u-7m8-19@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
when relay_open_buf fails in relay_open, program will goto free_bufs,
but chan is nowhere freed.
In addition, give warning to users who forget to provide create file
hook.
Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
---
kernel/relay.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/kernel/relay.c b/kernel/relay.c
index 074994b..e0990c7 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -589,6 +589,13 @@ struct rchan *relay_open(const char *base_filename,
chan->parent = parent;
chan->private_data = private_data;
if (base_filename) {
+ if (!cb || !cb->create_buf_file) {
+ printk(KERN_ERR
+ "relay_open: has base filename without "
+ "providing hook to create file\n");
+ kfree(chan);
+ return NULL;
+ }
chan->has_base_filename = 1;
strlcpy(chan->base_filename, base_filename, NAME_MAX);
}
@@ -614,6 +621,7 @@ free_bufs:
kref_put(&chan->kref, relay_destroy_channel);
mutex_unlock(&relay_channels_mutex);
+ kfree(chan);
return NULL;
}
EXPORT_SYMBOL_GPL(relay_open);
--
1.9.1
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH] relay: fix potential memory leak Zhouyi Zhou <yizhouzhou@ict.ac.cn> - 2016-06-01 13:00 +0200
Re: [PATCH] relay: fix potential memory leak Andrew Morton <akpm@linux-foundation.org> - 2016-06-02 00:00 +0200
Re: Re: [PATCH] relay: fix potential memory leak "Zhouyi Zhou" <yizhouzhou@ict.ac.cn> - 2016-06-02 03:30 +0200
Re: [PATCH] relay: fix potential memory leak Andrew Morton <akpm@linux-foundation.org> - 2016-06-02 04:20 +0200
csiph-web