app/test: avoid freeing mbufs twice in qat test
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 27 Jun 2016 12:41:27 +0000 (13:41 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 27 Jun 2016 14:44:12 +0000 (16:44 +0200)
Test_multi_session was freeing mbufs used in the multiple sessions
created and setting obuf to NULL after it, but ibuf was not being
set to NULL, and therefore, it was being freed again (ibuf and obuf
are pointing at the same address), in the ut_teardown() function.

Fixes: 1b9cb73ecef1 ("app/test: fix qat autotest failure")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
app/test/test_cryptodev.c

index 67608ff..9dfe34f 100644 (file)
@@ -3471,12 +3471,19 @@ test_multi_session(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) {
+                       rte_pktmbuf_free(ut_params->ibuf);
+                       ut_params->ibuf = 0;
+               }
        }
 
        /* Next session create should fail */