security: fix crash on destroy null session
authorRadu Nicolau <radu.nicolau@intel.com>
Thu, 5 Jul 2018 10:04:42 +0000 (11:04 +0100)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Tue, 10 Jul 2018 22:57:51 +0000 (00:57 +0200)
rte_security_session_destroy should return -EINVAL if session is NULL,
but segfaults because of rte_mempool_from_obj(NULL) call.

Fixes: c261d1431bd8 ("security: introduce security API and framework")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
lib/librte_security/rte_security.c

index f36a8a0..1954960 100644 (file)
@@ -63,7 +63,6 @@ rte_security_session_destroy(struct rte_security_ctx *instance,
                             struct rte_security_session *sess)
 {
        int ret;
-       struct rte_mempool *mp = rte_mempool_from_obj(sess);
 
        RTE_FUNC_PTR_OR_ERR_RET(*instance->ops->session_destroy, -ENOTSUP);
 
@@ -72,7 +71,7 @@ rte_security_session_destroy(struct rte_security_ctx *instance,
 
        ret = instance->ops->session_destroy(instance->device, sess);
        if (!ret)
-               rte_mempool_put(mp, (void *)sess);
+               rte_mempool_put(rte_mempool_from_obj(sess), (void *)sess);
 
        return ret;
 }