All API's should check that they support the flag values passed. If an application passes an invalid flag it could cause problems in later ABI.
Signed-off-by: Stephen Hemminger <step...@networkplumber.org> --- lib/librte_ring/rte_ring.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/librte_ring/rte_ring.c b/lib/librte_ring/rte_ring.c index 77e5de099b81..6cd8831649ea 100644 --- a/lib/librte_ring/rte_ring.c +++ b/lib/librte_ring/rte_ring.c @@ -100,6 +100,13 @@ rte_ring_init(struct rte_ring *r, const char *name, unsigned count, RTE_BUILD_BUG_ON((offsetof(struct rte_ring, prod) & RTE_CACHE_LINE_MASK) != 0); + /* future proof flags, only allow supported values */ + if (flags & ~(RING_F_SP_ENQ | RING_F_SC_DEQ)) { + RTE_LOG(ERR, RING, + "Unsupported flags requested %d\n", flags); + return -EINVAL; + } + /* init the ring structure */ memset(r, 0, sizeof(*r)); ret = strlcpy(r->name, name, sizeof(r->name)); -- 2.20.1