diff options
author | Eric Seppanen <eric@purestorage.com> | 2013-11-20 17:19:51 -0500 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-11-21 01:03:28 -0500 |
commit | 369653e4fb511928511b0ce81f41c812ff1f28b6 (patch) | |
tree | 1e6f4cbb7ac88c09169b4eda304547c13a1cc307 /drivers/target | |
parent | d1fa7a1d506730a5d1211048c2fdacc42373d4d5 (diff) |
iscsi-target: fix extract_param to handle buffer length corner case
extract_param() is called with max_length set to the total size of the
output buffer. It's not safe to allow a parameter length equal to the
buffer size as the terminating null would be written one byte past the
end of the output buffer.
Signed-off-by: Eric Seppanen <eric@purestorage.com>
Cc: <stable@vger.kernel.org> #3.1+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/iscsi/iscsi_target_nego.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/target/iscsi/iscsi_target_nego.c b/drivers/target/iscsi/iscsi_target_nego.c index 21265c9c12b5..635751be5af7 100644 --- a/drivers/target/iscsi/iscsi_target_nego.c +++ b/drivers/target/iscsi/iscsi_target_nego.c | |||
@@ -88,7 +88,7 @@ int extract_param( | |||
88 | if (len < 0) | 88 | if (len < 0) |
89 | return -1; | 89 | return -1; |
90 | 90 | ||
91 | if (len > max_length) { | 91 | if (len >= max_length) { |
92 | pr_err("Length of input: %d exceeds max_length:" | 92 | pr_err("Length of input: %d exceeds max_length:" |
93 | " %d\n", len, max_length); | 93 | " %d\n", len, max_length); |
94 | return -1; | 94 | return -1; |