Hi Greg,
Cc'ing stable@vger.kernel.org.
Subash (he's on Cc) needs these two fixes for 4.19:
f24d2d4f9586985509320f90308723d3d0c4e47f netfilter: xt_TEE: fix wrong interface selection
18c0ab87364ac5128a152055fdcb1d27e01caf01 netfilter: xt_TEE: add missing code to get interface index in checkentry.
Subash forgot to Cc stable@vger.kernel.org in his two patches, sorry about that.
Thanks!
On Fri, Mar 08, 2019 at 04:38:14PM -0700, Subash Abhinov Kasiviswanathan wrote:
From: Taehee Yoo ap420073@gmail.com
commit 18c0ab87364ac5128a152055fdcb1d27e01caf01 upstream.
checkentry(tee_tg_check) should initialize priv->oif from dev if possible. But only netdevice notifier handler can set that. Hence priv->oif is always -1 until notifier handler is called.
Fixes: 9e2f6c5d78db ("netfilter: Rework xt_TEE netdevice notifier") Signed-off-by: Taehee Yoo ap420073@gmail.com Signed-off-by: Pablo Neira Ayuso pablo@netfilter.org
net/netfilter/xt_TEE.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/net/netfilter/xt_TEE.c b/net/netfilter/xt_TEE.c index 673ad20..1dae02a 100644 --- a/net/netfilter/xt_TEE.c +++ b/net/netfilter/xt_TEE.c @@ -104,6 +104,8 @@ static int tee_tg_check(const struct xt_tgchk_param *par) return -EINVAL; if (info->oif[0]) {
struct net_device *dev;
- if (info->oif[sizeof(info->oif)-1] != '\0') return -EINVAL;
@@ -115,6 +117,11 @@ static int tee_tg_check(const struct xt_tgchk_param *par) priv->oif = -1; info->priv = priv;
dev = dev_get_by_name(par->net, info->oif);
if (dev) {
priv->oif = dev->ifindex;
dev_put(dev);
mutex_lock(&tn->lock); list_add(&priv->list, &tn->priv_list); mutex_unlock(&tn->lock);}
-- 1.9.1