[PATCH 2/8] If param check fails during iscsi login text processing, answer that key with Reject. According to iscsi spec (5.2) the target can choose between responding bad values with key=Reject, sending an admissible value and closing the connection by returning a login error. Here the Reject option is implemented. Any objections?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Alexander Nezhinsky <alexandern@xxxxxxxxxxxx>


Signed-off-by: Alexander Nezhinsky <alexandern@xxxxxxxxxxxx>
---
 usr/iscsi/iscsid.c    |    5 +++++
 usr/iscsi/iser_text.c |    5 +++++
 2 files changed, 10 insertions(+)

diff --git a/usr/iscsi/iscsid.c b/usr/iscsi/iscsid.c
index 4ed3711..144d2bd 100644
--- a/usr/iscsi/iscsid.c
+++ b/usr/iscsi/iscsid.c
@@ -341,6 +341,10 @@ static void text_scan_login(struct iscsi_connection *conn)
 			}
 
 			err = param_check_val(session_keys, idx, &val);
+			if (err) {
+				text_key_add_reject(conn, key);
+				continue;
+			}
 			if (idx == ISCSI_PARAM_MAX_XMIT_DLENGTH &&
 			    conn->session_type == SESSION_DISCOVERY)
 				conn->session_param[idx].val = val;
@@ -454,6 +458,7 @@ static void login_start(struct iscsi_connection *conn)
 	}
 	conn->initiator = strdup(name);
 	alias = text_key_find(conn, "InitiatorAlias");
+
 	session_type = text_key_find(conn, "SessionType");
 	target_name = text_key_find(conn, "TargetName");
 
diff --git a/usr/iscsi/iser_text.c b/usr/iscsi/iser_text.c
index dd91a41..c703492 100644
--- a/usr/iscsi/iser_text.c
+++ b/usr/iscsi/iser_text.c
@@ -284,6 +284,11 @@ static void iser_login_oper_scan(struct iscsi_connection *iscsi_conn,
 			}
 
 			err = param_check_val(session_keys, idx, &val);
+			if (err) {
+				iser_text_key_add_reject(iscsi_conn, tx_pdu, key);
+				continue;
+			}
+
 			param_set_val(session_keys, iscsi_conn->session_param, idx, &val);
 
 			switch (iscsi_conn->session_param[idx].state) {
-- 
1.7.9.6

--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Linux RAID]     [Linux Clusters]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]

  Powered by Linux