taprio: add null check on sched_nest to avoid potential null pointer dereference
authorColin Ian King <colin.king@canonical.com>
Sun, 5 May 2019 21:50:19 +0000 (22:50 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 May 2019 19:15:33 +0000 (12:15 -0700)
The call to nla_nest_start_noflag can return a null pointer and currently
this is not being checked and this can lead to a null pointer dereference
when the null pointer sched_nest is passed to function nla_nest_end. Fix
this by adding in a null pointer check.

Addresses-Coverity: ("Dereference null return value")
Fixes: a3d43c0d56f1 ("taprio: Add support adding an admin schedule")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_taprio.c

index 5396771..9ecfb8f 100644 (file)
@@ -1087,6 +1087,8 @@ static int taprio_dump(struct Qdisc *sch, struct sk_buff *skb)
                goto done;
 
        sched_nest = nla_nest_start_noflag(skb, TCA_TAPRIO_ATTR_ADMIN_SCHED);
+       if (!sched_nest)
+               goto options_error;
 
        if (dump_schedule(skb, admin))
                goto admin_error;