diff options
| author | Hangbin Liu <liuhangbin@gmail.com> | 2017-02-08 08:16:45 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-02-18 09:11:43 -0500 |
| commit | 16a3fbe5239a5ca054b0544abdd661076ec4f1c5 (patch) | |
| tree | a3bc0891ce69edaab06cc80be56cde506f101224 /net/ipv4 | |
| parent | 53a76d633b860f47f82f3ad821bc264306f9be69 (diff) | |
igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()
[ Upstream commit 9c8bb163ae784be4f79ae504e78c862806087c54 ]
In function igmpv3/mld_add_delrec() we allocate pmc and put it in
idev->mc_tomb, so we should free it when we don't need it in del_delrec().
But I removed kfree(pmc) incorrectly in latest two patches. Now fix it.
Fixes: 24803f38a5c0 ("igmp: do not remove igmp souce list info when ...")
Fixes: 1666d49e1d41 ("mld: do not remove mld souce list info when ...")
Reported-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/ipv4')
| -rw-r--r-- | net/ipv4/igmp.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index 32a08bc010bf..1bc623d7f754 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c | |||
| @@ -1172,6 +1172,7 @@ static void igmpv3_del_delrec(struct in_device *in_dev, struct ip_mc_list *im) | |||
| 1172 | psf->sf_crcount = im->crcount; | 1172 | psf->sf_crcount = im->crcount; |
| 1173 | } | 1173 | } |
| 1174 | in_dev_put(pmc->interface); | 1174 | in_dev_put(pmc->interface); |
| 1175 | kfree(pmc); | ||
| 1175 | } | 1176 | } |
| 1176 | spin_unlock_bh(&im->lock); | 1177 | spin_unlock_bh(&im->lock); |
| 1177 | } | 1178 | } |
