[dpdk-stable] patch 'test/ipsec: fix crash in session destroy' has been queued to stable release 19.11.3
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Tue May 19 14:54:12 CEST 2020
Hi,
FYI, your patch has been queued to stable release 19.11.3
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/21/20. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Thanks.
Luca Boccassi
---
>From 2193048d873333899100af6436725928ea9db909 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang at arm.com>
Date: Fri, 20 Mar 2020 16:05:20 +0800
Subject: [PATCH] test/ipsec: fix crash in session destroy
[ upstream commit 40a49a89d7dc7c64e58260e0097dd0ae5f98e9c4 ]
Segfault was observed when running ipsec unit test:
+ TestCase [10] : test_ipsec_replay_inb_repeat_null_null_wrapper
succeeded
+ TestCase [11] : test_ipsec_replay_inb_inside_burst_null_null_wrapper
succeeded
+ TestCase [12] : test_ipsec_crypto_inb_burst_2sa_null_null_wrapper
succeeded
+ TestCase [13] : test_ipsec_crypto_inb_burst_2sa_4grp_null_null_wrapper
succeeded
Segmentation fault
Data corruption happens due to incorrect destroy of session. Security
session needs process different from crypto session.
Destroy corresponding sessions according to different security actions.
Fixes: 05fe65eb66b2 ("test/ipsec: introduce functional test")
Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
Reviewed-by: Phil Yang <phil.yang at arm.com>
Reviewed-by: Gavin Hu <gavin.hu at arm.com>
Tested-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
---
app/test/test_ipsec.c | 33 ++++++++++++++++++++++++++++++---
1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/app/test/test_ipsec.c b/app/test/test_ipsec.c
index 9e14472938..79d00d7e02 100644
--- a/app/test/test_ipsec.c
+++ b/app/test/test_ipsec.c
@@ -1167,6 +1167,34 @@ test_ipsec_dump_buffers(struct ipsec_unitest_params *ut_params, int i)
}
}
+static void
+destroy_dummy_sec_session(struct ipsec_unitest_params *ut,
+ uint32_t j)
+{
+ rte_security_session_destroy(&dummy_sec_ctx,
+ ut->ss[j].security.ses);
+ ut->ss[j].security.ctx = NULL;
+}
+
+static void
+destroy_crypto_session(struct ipsec_unitest_params *ut,
+ uint8_t crypto_dev, uint32_t j)
+{
+ rte_cryptodev_sym_session_clear(crypto_dev, ut->ss[j].crypto.ses);
+ rte_cryptodev_sym_session_free(ut->ss[j].crypto.ses);
+ memset(&ut->ss[j], 0, sizeof(ut->ss[j]));
+}
+
+static void
+destroy_session(struct ipsec_unitest_params *ut,
+ uint8_t crypto_dev, uint32_t j)
+{
+ if (ut->ss[j].type == RTE_SECURITY_ACTION_TYPE_NONE)
+ return destroy_crypto_session(ut, crypto_dev, j);
+ else
+ return destroy_dummy_sec_session(ut, j);
+}
+
static void
destroy_sa(uint32_t j)
{
@@ -1175,9 +1203,8 @@ destroy_sa(uint32_t j)
rte_ipsec_sa_fini(ut->ss[j].sa);
rte_free(ut->ss[j].sa);
- rte_cryptodev_sym_session_clear(ts->valid_dev, ut->ss[j].crypto.ses);
- rte_cryptodev_sym_session_free(ut->ss[j].crypto.ses);
- memset(&ut->ss[j], 0, sizeof(ut->ss[j]));
+
+ destroy_session(ut, ts->valid_dev, j);
}
static int
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2020-05-19 13:56:21.356042820 +0100
+++ 0062-test-ipsec-fix-crash-in-session-destroy.patch 2020-05-19 13:56:18.291503115 +0100
@@ -1,8 +1,10 @@
-From 40a49a89d7dc7c64e58260e0097dd0ae5f98e9c4 Mon Sep 17 00:00:00 2001
+From 2193048d873333899100af6436725928ea9db909 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang at arm.com>
Date: Fri, 20 Mar 2020 16:05:20 +0800
Subject: [PATCH] test/ipsec: fix crash in session destroy
+[ upstream commit 40a49a89d7dc7c64e58260e0097dd0ae5f98e9c4 ]
+
Segfault was observed when running ipsec unit test:
+ TestCase [10] : test_ipsec_replay_inb_repeat_null_null_wrapper
@@ -21,7 +23,6 @@
Destroy corresponding sessions according to different security actions.
Fixes: 05fe65eb66b2 ("test/ipsec: introduce functional test")
-Cc: stable at dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
Reviewed-by: Phil Yang <phil.yang at arm.com>
More information about the stable
mailing list