crypto/virtio: fix memory leak
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Thu, 19 Jul 2018 09:05:56 +0000 (10:05 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 23 Jul 2018 23:48:10 +0000 (01:48 +0200)
Put session private data back to mempool when clearing
a crypto session, which is expected to be done in the PMD.

Fixes: b7fa78c7d3b0 ("crypto/virtio: support session related ops")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Reviewed-by: Jay Zhou <jianjay.zhou@huawei.com>
drivers/crypto/virtio/virtio_cryptodev.c

index cc7a0b1..568b5a4 100644 (file)
@@ -1076,7 +1076,10 @@ virtio_crypto_sym_clear_session(
        VIRTIO_CRYPTO_SESSION_LOG_INFO("Close session %"PRIu64" successfully ",
                        session->session_id);
 
-       memset(sess, 0, sizeof(struct virtio_crypto_session));
+       memset(session, 0, sizeof(struct virtio_crypto_session));
+       struct rte_mempool *sess_mp = rte_mempool_from_obj(session);
+       set_sym_session_private_data(sess, cryptodev_virtio_driver_id, NULL);
+       rte_mempool_put(sess_mp, session);
        rte_free(malloc_virt_addr);
 }