> -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jan Blunck > Sent: Monday, February 6, 2017 5:33 PM > To: dev@dpdk.org > Cc: h.mikit...@gmail.com; Alan Dewar <ade...@brocade.com> > Subject: [dpdk-dev] [PATCH] sched: fix segmentation fault when freeing port > > From: Alan Dewar <ade...@brocade.com> > > Prevent a segmentation fault in rte_sched_port_free by only accessing > the port structure after the NULL pointer check has been made. > > Fixes: 7b3c4f35 ("sched: fix releasing enqueued packets") > > Signed-off-by: Alan Dewar <ade...@brocade.com> > Signed-off-by: Jan Blunck <jblu...@infradead.org> > --- > lib/librte_sched/rte_sched.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c > index e6dace2..614705d 100644 > --- a/lib/librte_sched/rte_sched.c > +++ b/lib/librte_sched/rte_sched.c > @@ -735,12 +735,14 @@ void > rte_sched_port_free(struct rte_sched_port *port) > { > uint32_t qindex; > - uint32_t n_queues_per_port = > rte_sched_port_queues_per_port(port); > + uint32_t n_queues_per_port; > > /* Check user parameters */ > if (port == NULL) > return; > > + n_queues_per_port = rte_sched_port_queues_per_port(port); > + > /* Free enqueued mbufs */ > for (qindex = 0; qindex < n_queues_per_port; qindex++) { > struct rte_mbuf **mbufs = rte_sched_port_qbase(port, > qindex); > -- > 2.7.4
Acked-by: Cristian Dumitrescu <cristian.dumitre...@intel.com>