[dpdk-dev] [PATCH] crypto/qat: fix second seg fault in QAT PMD

Bernard Iremonger bernard.iremonger at intel.com
Mon Apr 8 14:26:10 CEST 2019


While running the IPsec unit tests the following
segmentation fault is occurring:

Thread 1 "test" received signal SIGSEGV, Segmentation fault.
0x0000000000bf3b50 in qat_sym_process_response (
op=0x5355280 <unittest_params+512>, resp=0x100455100 "")
at /root/dpdk/drivers/crypto/qat/qat_sym.h:161
161	if (sess->bpi_ctx)

Fixes: 91614c73b67c ("crypto/qat: make response process function inline")
Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
---
 drivers/crypto/qat/qat_sym.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/crypto/qat/qat_sym.h b/drivers/crypto/qat/qat_sym.h
index bc6426c..685c6c0 100644
--- a/drivers/crypto/qat/qat_sym.h
+++ b/drivers/crypto/qat/qat_sym.h
@@ -157,10 +157,12 @@ qat_sym_process_response(void **op, uint8_t *resp)
 						rx_op->sym->session,
 						cryptodev_qat_driver_id);
 
-
-		if (sess->bpi_ctx)
+		if (sess == NULL)
+			rx_op->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
+		else if (sess->bpi_ctx) {
 			qat_bpicipher_postprocess(sess, rx_op);
-		rx_op->status = RTE_CRYPTO_OP_STATUS_SUCCESS;
+			rx_op->status = RTE_CRYPTO_OP_STATUS_SUCCESS;
+		}
 	}
 	*op = (void *)rx_op;
 }
-- 
2.7.4



More information about the dev mailing list