From 1017435ca9681236b6c993202a75b7b44d45d1ea Mon Sep 17 00:00:00 2001 From: sallyjunjun <72725839+sallyjunjun@users.noreply.github.com> Date: Wed, 15 Jun 2022 10:14:36 +0800 Subject: [PATCH] Fix segmentation fault problem. When execute iscsi_task_mgmt_lun_reset_async function, pdus are already removed from waitpdu list. In iscsi_service function, this will call iscsi_process_pdu and release pdu from waitpdu again, which cause segmentation fault. Whether waitpud list is NULL should be checked here to avoid the problem. Signed-off-by: geruijun --- lib/pdu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pdu.c b/lib/pdu.c index 6fe70db..f9c0bc5 100644 --- a/lib/pdu.c +++ b/lib/pdu.c @@ -622,7 +622,7 @@ iscsi_process_pdu(struct iscsi_context *iscsi, struct iscsi_in_pdu *in) return -1; } - if (is_finished) { + if (is_finished && iscsi->waitpdu != NULL) { ISCSI_LIST_REMOVE(&iscsi->waitpdu, pdu); iscsi->drv->free_pdu(iscsi, pdu); }