Blob Blame History Raw
Dont reference *pdu after it has been freed

Message-id: <1383729402-27559-3-git-send-email-pbonzini@redhat.com>
Patchwork-id: 55497
O-Subject: [PATCH 02/11] Dont reference *pdu after it has been freed
Bugzilla: 1026820
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Acked-by: Orit Wasserman <owasserm@redhat.com>
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>

From: Ronnie Sahlberg <ronniesahlberg@gmail.com>

(cherry picked from commit 804c5b02112d84c79460e7b2a01fe42f0ca5e687)
---
 lib/iscsi-command.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/iscsi-command.c b/lib/iscsi-command.c
index e52612d..95127a5 100644
--- a/lib/iscsi-command.c
+++ b/lib/iscsi-command.c
@@ -1636,7 +1636,7 @@ iscsi_scsi_cancel_all_tasks(struct iscsi_context *iscsi)
 {
 	struct iscsi_pdu *pdu;
 
-	for (pdu = iscsi->waitpdu; pdu; pdu = pdu->next) {
+	while ((pdu = iscsi->waitpdu)) {
 		SLIST_REMOVE(&iscsi->waitpdu, pdu);
 		if ( !(pdu->flags & ISCSI_PDU_NO_CALLBACK)) {
 			pdu->callback(iscsi, SCSI_STATUS_CANCELLED, NULL,
@@ -1644,7 +1644,7 @@ iscsi_scsi_cancel_all_tasks(struct iscsi_context *iscsi)
 		}
 		iscsi_free_pdu(iscsi, pdu);
 	}
-	for (pdu = iscsi->outqueue; pdu; pdu = pdu->next) {
+	while ((pdu = iscsi->outqueue)) {
 		SLIST_REMOVE(&iscsi->outqueue, pdu);
 		if ( !(pdu->flags & ISCSI_PDU_NO_CALLBACK)) {
 			pdu->callback(iscsi, SCSI_STATUS_CANCELLED, NULL,