3.16.62-rc1 review patch. If anyone has any objections, please let me know.
------------------ From: Dan Carpenter <dan.carpen...@oracle.com> commit aeadd93f2b0a609f603ac33e574b97a9832d1b90 upstream. If "td->u.target_size" is larger than sizeof(struct xt_entry_target) we return -EINVAL. But we don't check whether it's smaller than sizeof(struct xt_entry_target) and that could lead to an out of bounds read. Fixes: 7ba699c604ab ("[NET_SCHED]: Convert actions from rtnetlink to new netlink API") Signed-off-by: Dan Carpenter <dan.carpen...@oracle.com> Signed-off-by: David S. Miller <da...@davemloft.net> [bwh: Backported to 3.16: adjust context] Signed-off-by: Ben Hutchings <b...@decadent.org.uk> --- net/sched/act_ipt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/net/sched/act_ipt.c +++ b/net/sched/act_ipt.c @@ -107,7 +107,7 @@ static int tcf_ipt_init(struct net *net, return -EINVAL; td = (struct xt_entry_target *)nla_data(tb[TCA_IPT_TARG]); - if (nla_len(tb[TCA_IPT_TARG]) < td->u.target_size) + if (nla_len(tb[TCA_IPT_TARG]) != td->u.target_size) return -EINVAL; if (tb[TCA_IPT_INDEX] != NULL)