iscsi-target: Disable markers + remove dangerous local scope array usage
authorNicholas Bellinger <nab@linux-iscsi.org>
Fri, 16 Sep 2011 08:44:54 +0000 (01:44 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 16 Sep 2011 19:37:18 +0000 (19:37 +0000)
commit2ff017f5b4299e24a7f22d9a336dd162bf52bb54
tree71b896a42d7576dd751abf65adbf85f4a7726641
parent784eb99ebad91db4c8c231c4b17f203147ab827b
iscsi-target: Disable markers + remove dangerous local scope array usage

This patch makes iscsi-target explictly disable OFMarker=Yes and IFMarker=yes
parameter key usage during iscsi login by setting IFMarkInt_Reject and
OFMarkInt_Reject values in iscsi_enforce_integrity_rules() to effectively
disable iscsi marker usage.  With this patch, an initiator proposer asking
to enable either marker parameter keys will be issued a 'No' response, and
the target sets OFMarkInt + IFMarkInt parameter key response to 'Irrelevant'.

With markers disabled during iscsi login, this patch removes the problematic
on-stack local-scope array for marker intervals in iscsit_do_rx_data() +
iscsit_do_tx_data(), and other related marker code in iscsi_target_util.c.
This fixes a potentional stack smashing scenario with small range markers
enabled and a large MRDSL as reported by DanC here:

[bug report] target: stack can be smashed
http://www.spinics.net/lists/target-devel/msg00453.html

Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/iscsi/iscsi_target_parameters.c
drivers/target/iscsi/iscsi_target_util.c