| From foo@baz Wed 01 Jan 2020 10:36:29 PM CET |
| From: Taehee Yoo <ap420073@gmail.com> |
| Date: Wed, 11 Dec 2019 08:23:48 +0000 |
| Subject: gtp: avoid zero size hashtable |
| |
| From: Taehee Yoo <ap420073@gmail.com> |
| |
| [ Upstream commit 6a902c0f31993ab02e1b6ea7085002b9c9083b6a ] |
| |
| GTP default hashtable size is 1024 and userspace could set specific |
| hashtable size with IFLA_GTP_PDP_HASHSIZE. If hashtable size is set to 0 |
| from userspace, hashtable will not work and panic will occur. |
| |
| Fixes: 459aa660eb1d ("gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U)") |
| Signed-off-by: Taehee Yoo <ap420073@gmail.com> |
| Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/gtp.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/gtp.c |
| +++ b/drivers/net/gtp.c |
| @@ -671,10 +671,13 @@ static int gtp_newlink(struct net *src_n |
| if (err < 0) |
| return err; |
| |
| - if (!data[IFLA_GTP_PDP_HASHSIZE]) |
| + if (!data[IFLA_GTP_PDP_HASHSIZE]) { |
| hashsize = 1024; |
| - else |
| + } else { |
| hashsize = nla_get_u32(data[IFLA_GTP_PDP_HASHSIZE]); |
| + if (!hashsize) |
| + hashsize = 1024; |
| + } |
| |
| err = gtp_hashtable_new(gtp, hashsize); |
| if (err < 0) |