examples/ipsec_secgw: fix security session
authorFan Zhang <roy.fan.zhang@intel.com>
Tue, 23 Jan 2018 12:32:11 +0000 (12:32 +0000)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 29 Jan 2018 19:22:33 +0000 (20:22 +0100)
Fixes: 3da37f682173 ("examples/ipsec_secgw: create session mempools for ethdevs")

Some NICs do not have the rte_security context, this patch fixes the segment fault
caused by this.

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
examples/ipsec-secgw/ipsec-secgw.c

index 3a28fcc..c67f79d 100644 (file)
@@ -1384,10 +1384,16 @@ cryptodevs_init(void)
                        max_sess_sz = sess_sz;
        }
        for (port_id = 0; port_id < rte_eth_dev_count(); port_id++) {
+               void *sec_ctx;
+
                if ((enabled_port_mask & (1 << port_id)) == 0)
                        continue;
-               sess_sz = rte_security_session_get_size(
-                               rte_eth_dev_get_sec_ctx(port_id));
+
+               sec_ctx = rte_eth_dev_get_sec_ctx(port_id);
+               if (sec_ctx == NULL)
+                       continue;
+
+               sess_sz = rte_security_session_get_size(sec_ctx);
                if (sess_sz > max_sess_sz)
                        max_sess_sz = sess_sz;
        }