From 2b9c928bcefc061a887ba3542905c82a966413c6 Mon Sep 17 00:00:00 2001 From: Khazhismel Kumykov Date: Fri, 8 Nov 2019 17:36:40 -0800 Subject: [PATCH] test-tool: avoid use-after-free on iscsi_logout_sync iscsi_logout_sync in lu_reset_simple will still refer to wtask in the case that we bail out due to reconnect failure. abort_simple would sometimes refer to wtask during iscsi_logout_sync, even if the test passed. Signed-off-by: Khazhismel Kumykov --- test-tool/test_async_abort_simple.c | 7 +++---- test-tool/test_async_lu_reset_simple.c | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/test-tool/test_async_abort_simple.c b/test-tool/test_async_abort_simple.c index 5add7ce..7b30478 100644 --- a/test-tool/test_async_abort_simple.c +++ b/test-tool/test_async_abort_simple.c @@ -199,10 +199,9 @@ test_async_abort_simple(void) CU_FAIL("unexpected WRITE/ABORT state"); } - scsi_free_scsi_task(state.wtask); - /* Avoid that callbacks get invoked after this test finished */ - iscsi_logout_sync(sd->iscsi_ctx); - iscsi_destroy_context(sd->iscsi_ctx); + iscsi_logout_sync(sd->iscsi_ctx); + iscsi_destroy_context(sd->iscsi_ctx); + scsi_free_scsi_task(state.wtask); sd->iscsi_ctx = NULL; } diff --git a/test-tool/test_async_lu_reset_simple.c b/test-tool/test_async_lu_reset_simple.c index 1b7943f..f867708 100644 --- a/test-tool/test_async_lu_reset_simple.c +++ b/test-tool/test_async_lu_reset_simple.c @@ -196,10 +196,10 @@ test_async_lu_reset_simple(void) } out: - scsi_free_scsi_task(state.wtask); /* Avoid that callbacks get invoked after this test finished */ - iscsi_logout_sync(sd->iscsi_ctx); - iscsi_destroy_context(sd->iscsi_ctx); + iscsi_logout_sync(sd->iscsi_ctx); + iscsi_destroy_context(sd->iscsi_ctx); + scsi_free_scsi_task(state.wtask); sd->iscsi_ctx = NULL; }