mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
gtp: add missing gtp_encap_disable_sock() in gtp_encap_enable()
[ Upstream commite30155fd23] If an invalid role is sent from user space, gtp_encap_enable() will fail. Then, it should call gtp_encap_disable_sock() but current code doesn't. It makes memory leak. Fixes:91ed81f9ab("gtp: support SGSN-side tunnels") Signed-off-by: Taehee Yoo <ap420073@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0fdb922d0e
commit
ca33af18b5
@@ -847,8 +847,13 @@ static int gtp_encap_enable(struct gtp_dev *gtp, struct nlattr *data[])
|
||||
|
||||
if (data[IFLA_GTP_ROLE]) {
|
||||
role = nla_get_u32(data[IFLA_GTP_ROLE]);
|
||||
if (role > GTP_ROLE_SGSN)
|
||||
if (role > GTP_ROLE_SGSN) {
|
||||
if (sk0)
|
||||
gtp_encap_disable_sock(sk0);
|
||||
if (sk1u)
|
||||
gtp_encap_disable_sock(sk1u);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
gtp->sk0 = sk0;
|
||||
|
||||
Reference in New Issue
Block a user