Doing arithmetics with the NULL pointer is undefined. Caught by UBSan:
../app/test/test_tailq.c:111:9: runtime error: member access within null pointer of type 'struct rte_tailq_head' Fixes: f6b4f6c9c123 ("tailq: use a single cast macro") Cc: sta...@dpdk.org Signed-off-by: David Marchand <david.march...@redhat.com> Acked-by: Bruce Richardson <bruce.richard...@intel.com> --- lib/eal/include/rte_tailq.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/eal/include/rte_tailq.h b/lib/eal/include/rte_tailq.h index 89f7ef2134..c23df77d96 100644 --- a/lib/eal/include/rte_tailq.h +++ b/lib/eal/include/rte_tailq.h @@ -54,7 +54,7 @@ struct rte_tailq_elem { * Return the first tailq entry cast to the right struct. */ #define RTE_TAILQ_CAST(tailq_entry, struct_name) \ - (struct struct_name *)&(tailq_entry)->tailq_head + (tailq_entry == NULL ? NULL : (struct struct_name *)&(tailq_entry)->tailq_head) /** * Utility macro to make looking up a tailqueue for a particular struct easier. -- 2.49.0