From 33c301335b25a3d517ce6049f2cc99a2da62b0d1 Mon Sep 17 00:00:00 2001 From: Peter Lieven Date: Thu, 26 Mar 2015 12:27:48 +0100 Subject: [PATCH] socket: check if expcmdsn is not greater than pdus cmdsn this is just another sanity check. Signed-off-by: Peter Lieven --- lib/socket.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/socket.c b/lib/socket.c index d97798a..d73859c 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -640,6 +640,11 @@ iscsi_write_to_socket(struct iscsi_context *iscsi) return 0; } /* pop first element of the outqueue */ + if (iscsi_serial32_compare(iscsi->outqueue->cmdsn, iscsi->expcmdsn) < 0) { + iscsi_set_error(iscsi, "iscsi_write_to_scoket: outqueue[0]->cmdsn < expcmdsn (%08x < %08x)", + iscsi->outqueue->cmdsn, iscsi->expcmdsn); + return -1; + } iscsi->outqueue_current = iscsi->outqueue; ISCSI_LIST_REMOVE(&iscsi->outqueue, iscsi->outqueue_current); if (!(iscsi->outqueue_current->flags & ISCSI_PDU_DELETE_WHEN_SENT)) {