From 18715a0b6f1f7742f21240007f9df501e35aec5e Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 10 Apr 2019 12:24:47 +0100 Subject: [PATCH] reorder: add checks for invalid function inputs For APIs which can return an error value, do sanity checking of the input parameters for NULL and return a suitable error value for those cases. NOTE: The drain function is currently omitting NULL checks too, but this function has no way to flag an error value, so checking in that case would simply mask problems. Reported-by: Bernard Iremonger Signed-off-by: Bruce Richardson Acked-by: Bernard Iremonger --- lib/librte_reorder/rte_reorder.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/librte_reorder/rte_reorder.c b/lib/librte_reorder/rte_reorder.c index b15328b2ec..3a4a1b0a0a 100644 --- a/lib/librte_reorder/rte_reorder.c +++ b/lib/librte_reorder/rte_reorder.c @@ -222,6 +222,11 @@ rte_reorder_find_existing(const char *name) struct rte_tailq_entry *te; struct rte_reorder_list *reorder_list; + if (name == NULL) { + rte_errno = EINVAL; + return NULL; + } + reorder_list = RTE_TAILQ_CAST(rte_reorder_tailq.head, rte_reorder_list); rte_rwlock_read_lock(RTE_EAL_TAILQ_RWLOCK); @@ -295,8 +300,14 @@ int rte_reorder_insert(struct rte_reorder_buffer *b, struct rte_mbuf *mbuf) { uint32_t offset, position; - struct cir_buffer *order_buf = &b->order_buf; + struct cir_buffer *order_buf; + + if (b == NULL || mbuf == NULL) { + rte_errno = EINVAL; + return -1; + } + order_buf = &b->order_buf; if (!b->is_initialized) { b->min_seqn = mbuf->seqn; b->is_initialized = 1; -- 2.20.1