[dpdk-stable] patch 'sched: fix crash when freeing port' has been queued to stable release 16.11.1

Yuanhan Liu yuanhan.liu at linux.intel.com
Wed Feb 15 07:26:28 CET 2017


Hi,

FYI, your patch has been queued to stable release 16.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable
yet. It will be pushed if I get no objections before 02/18/17.
So please shout if anyone has objections.

Thanks.

	--yliu

---
>From bfc65d9c21c61be041dc4704759fa29c4bc68594 Mon Sep 17 00:00:00 2001
From: Alan Dewar <adewar at brocade.com>
Date: Mon, 6 Feb 2017 18:32:42 +0100
Subject: [PATCH] sched: fix crash when freeing port

[ upstream commit 3b780b9e9e9221725abbad9820704d05d7d2805e ]

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 <adewar at brocade.com>
Signed-off-by: Jan Blunck <jblunck at infradead.org>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>
---
 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);
-- 
1.9.0



More information about the stable mailing list