test-tool: Avoid crashes due to NULL-pointer dereferences

Avoid that certain test failures cause the test tool to trigger a
segmentation fault.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
This commit is contained in:
Bart Van Assche
2017-10-30 16:58:09 -07:00
parent 8f2abea4de
commit 4d1918859f
3 changed files with 17 additions and 2 deletions

View File

@@ -33,7 +33,7 @@ test_prout_clear_simple(void)
uint32_t old_gen;
const unsigned long long key = rand_key();
struct scsi_task *tsk;
struct scsi_persistent_reserve_in_read_keys *rk;
struct scsi_persistent_reserve_in_read_keys *rk = NULL;
CHECK_FOR_DATALOSS;
@@ -51,6 +51,9 @@ test_prout_clear_simple(void)
ret = prin_read_keys(sd, &tsk, &rk);
CU_ASSERT_EQUAL(ret, 0);
CU_ASSERT_NOT_EQUAL(rk, NULL);
if (!rk)
goto out;
CU_ASSERT_NOT_EQUAL(rk->num_keys, 0);
/* retain PR generation number to check for increments */
@@ -78,11 +81,15 @@ test_prout_clear_simple(void)
ret = prin_read_keys(sd, &tsk, &rk);
CU_ASSERT_EQUAL(ret, 0);
CU_ASSERT_NOT_EQUAL(rk, NULL);
if (!rk)
goto out;
CU_ASSERT_EQUAL(rk->num_keys, 0);
/* generation incremented once for CLEAR (not for RESERVE) */
CU_ASSERT_EQUAL(rk->prgeneration, old_gen + 1);
out:
scsi_free_scsi_task(tsk);
rk = NULL; /* freed with tsk */
}