sch_hfsc: fix null pointer deref and double free on init failure
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Wed, 30 Aug 2017 09:49:00 +0000 (12:49 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Aug 2017 22:26:11 +0000 (15:26 -0700)
commit3bdac362a2f89ed3e148fa6f38c5f5d858f50b1a
treeb6de819af8c1171bfbd06a17d65290539ba5218c
parent32db864d33c21fd70a217ba53cb7224889354ffb
sch_hfsc: fix null pointer deref and double free on init failure

Depending on where ->init fails we can get a null pointer deref due to
uninitialized hires timer (watchdog) or a double free of the qdisc hash
because it is already freed by ->destroy().

Fixes: 8d5537387505 ("net/sched/hfsc: allocate tcf block for hfsc root class")
Fixes: 87b60cfacf9f ("net_sched: fix error recovery at qdisc creation")
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_hfsc.c