mempool: fix ignore return value Coverity issue
Checks
Commit Message
Coverity flags that rte_mempool_ops_dequeue_bulk() is called without
checking the return value.
This ignoring is intentional, so this patch gets the return code, then
uses RTE_SET_USED so that Coverity will be happy.
Coverity issue: 363744
Fixes: 449c49b93a6b ("mempool: support handler operations")
Cc: stable@dpdk.org
Signed-off-by: David Hunt <david.hunt@intel.com>
---
lib/librte_mempool/rte_mempool.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
On Thu, Nov 05, 2020 at 01:51:14PM +0000, David Hunt wrote:
> Coverity flags that rte_mempool_ops_dequeue_bulk() is called without
> checking the return value.
>
> This ignoring is intentional, so this patch gets the return code, then
> uses RTE_SET_USED so that Coverity will be happy.
>
> Coverity issue: 363744
> Fixes: 449c49b93a6b ("mempool: support handler operations")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Thanks David!
05/11/2020 14:58, Olivier Matz:
> On Thu, Nov 05, 2020 at 01:51:14PM +0000, David Hunt wrote:
> > Coverity flags that rte_mempool_ops_dequeue_bulk() is called without
> > checking the return value.
> >
> > This ignoring is intentional, so this patch gets the return code, then
> > uses RTE_SET_USED so that Coverity will be happy.
> >
> > Coverity issue: 363744
> > Fixes: 449c49b93a6b ("mempool: support handler operations")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: David Hunt <david.hunt@intel.com>
>
> Acked-by: Olivier Matz <olivier.matz@6wind.com>
>
> Thanks David!
This patch is doing nothing else than shutting up Coverity.
Is there any value adding this comment in the code?
Would it be cleaner to mark it as false positive in Coverity itself?
@@ -270,9 +270,11 @@ rte_mempool_free_memchunks(struct rte_mempool *mp)
{
struct rte_mempool_memhdr *memhdr;
void *elt;
+ int ret;
while (!STAILQ_EMPTY(&mp->elt_list)) {
- rte_mempool_ops_dequeue_bulk(mp, &elt, 1);
+ ret = rte_mempool_ops_dequeue_bulk(mp, &elt, 1);
+ RTE_SET_USED(ret); /* Intentionally ignored */
(void)elt;
STAILQ_REMOVE_HEAD(&mp->elt_list, next);
mp->populated_size--;