In cryptodev tests, when input and output buffers were the same,
the mbuf was being freed twice, causing refcnt_atomic to be negative.

Fixes: 202d375c60bc ("app/test: add cryptodev unit and performance tests")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
---
 app/test/test_cryptodev.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 1a67ffb..67608ff 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -396,10 +396,13 @@ ut_teardown(void)

        /*
         * free mbuf - both obuf and ibuf are usually the same,
-        * but rte copes even if we call free twice
+        * so check if they point at the same address is necessary,
+        * to avoid freeing the mbuf twice.
         */
        if (ut_params->obuf) {
                rte_pktmbuf_free(ut_params->obuf);
+               if (ut_params->ibuf == ut_params->obuf)
+                       ut_params->ibuf = 0;
                ut_params->obuf = 0;
        }
        if (ut_params->ibuf) {
-- 
2.5.0

Reply via email to