| From 897b1437751671db102edd508d7f29a5a8aa3857 Mon Sep 17 00:00:00 2001 |
| From: Taehee Yoo <ap420073@gmail.com> |
| Date: Wed, 11 Dec 2019 08:23:48 +0000 |
| Subject: [PATCH] gtp: avoid zero size hashtable |
| |
| commit 6a902c0f31993ab02e1b6ea7085002b9c9083b6a upstream. |
| |
| 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c |
| index 7bbc1be3490d..522802961712 100644 |
| --- a/drivers/net/gtp.c |
| +++ b/drivers/net/gtp.c |
| @@ -660,10 +660,13 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev, |
| 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) |
| -- |
| 2.7.4 |
| |