From b4a48511ff8de63636e24c380979bffa54edf14f Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 21 Sep 2011 11:49:58 +0200 Subject: [PATCH 1/4] fix warning from -Wenum-compare --- include/iscsi-private.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/iscsi-private.h b/include/iscsi-private.h index fd4c5b7..4842fce 100644 --- a/include/iscsi-private.h +++ b/include/iscsi-private.h @@ -107,8 +107,8 @@ struct iscsi_context { uint32_t target_max_recv_data_segment_length; enum iscsi_initial_r2t want_initial_r2t; enum iscsi_initial_r2t use_initial_r2t; - enum iscsi_initial_r2t want_immediate_data; - enum iscsi_initial_r2t use_immediate_data; + enum iscsi_immediate_data want_immediate_data; + enum iscsi_immediate_data use_immediate_data; }; #define ISCSI_PDU_IMMEDIATE 0x40 From c940381b597d4d05279c3e1617217880116a3011 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 21 Sep 2011 11:51:36 +0200 Subject: [PATCH 2/4] fix warning from -Wsign-compare --- lib/scsi-lowlevel.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/scsi-lowlevel.c b/lib/scsi-lowlevel.c index 0aff97a..3a4138c 100644 --- a/lib/scsi-lowlevel.c +++ b/lib/scsi-lowlevel.c @@ -1082,7 +1082,7 @@ scsi_get_task_private_ptr(struct scsi_task *task) struct scsi_data_buffer { struct scsi_data_buffer *next; - int len; + uint32_t len; unsigned char *data; }; @@ -1091,6 +1091,9 @@ scsi_task_add_data_in_buffer(struct scsi_task *task, int len, unsigned char *buf { struct scsi_data_buffer *data_buf; + if (len < 0) { + return -1; + } data_buf = scsi_malloc(task, sizeof(struct scsi_data_buffer)); if (data_buf == NULL) { return -1; From a1975e90f6509e987d49c8d0b62ae0ad68200d4a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 21 Sep 2011 11:59:54 +0200 Subject: [PATCH 3/4] fix warning from -Wuninitialized --- include/iscsi.h | 3 ++- lib/init.c | 4 ++++ lib/login.c | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/iscsi.h b/include/iscsi.h index 4582ffd..6064f8c 100644 --- a/include/iscsi.h +++ b/include/iscsi.h @@ -195,7 +195,8 @@ enum iscsi_header_digest { ISCSI_HEADER_DIGEST_NONE = 0, ISCSI_HEADER_DIGEST_NONE_CRC32C = 1, ISCSI_HEADER_DIGEST_CRC32C_NONE = 2, - ISCSI_HEADER_DIGEST_CRC32C = 3 + ISCSI_HEADER_DIGEST_CRC32C = 3, + ISCSI_HEADER_DIGEST_LAST = ISCSI_HEADER_DIGEST_CRC32C }; /* diff --git a/lib/init.c b/lib/init.c index 826e04f..705e4c5 100644 --- a/lib/init.c +++ b/lib/init.c @@ -282,6 +282,10 @@ iscsi_set_header_digest(struct iscsi_context *iscsi, "logged in"); return -1; } + if ((unsigned)header_digest > ISCSI_HEADER_DIGEST_LAST) { + iscsi_set_error(iscsi, "invalid header digest value"); + return -1; + } iscsi->want_header_digest = header_digest; diff --git a/lib/login.c b/lib/login.c index 0d4d7e9..24348e8 100644 --- a/lib/login.c +++ b/lib/login.c @@ -188,6 +188,9 @@ iscsi_login_add_headerdigest(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) case ISCSI_HEADER_DIGEST_CRC32C: str = (char *)"HeaderDigest=CRC32C"; break; + default: + iscsi_set_error(iscsi, "invalid header digest value"); + return -1; } if (iscsi_pdu_add_data(iscsi, pdu, (unsigned char *)str, strlen(str)+1) From 217bf6f53e1a8c03cae094e54ffbfdb62d0eef30 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 21 Sep 2011 12:01:39 +0200 Subject: [PATCH 4/4] fix warning from -Wswitch --- lib/scsi-lowlevel.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/scsi-lowlevel.c b/lib/scsi-lowlevel.c index 3a4138c..eb45d88 100644 --- a/lib/scsi-lowlevel.c +++ b/lib/scsi-lowlevel.c @@ -805,6 +805,10 @@ scsi_modesense_datain_unmarshall(struct scsi_task *task) case SCSI_MODESENSE_PAGECODE_INFORMATIONAL_EXCEPTIONS_CONTROL: scsi_parse_mode_informational_exceptions_control(task, pos, mp); break; + default: + /* TODO: process other pages, or add raw data to struct + * scsi_mode_page. */ + break; } mp->next = ms->pages;