aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libiscsi.c
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2012-01-26 22:13:10 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-02-19 09:09:00 -0500
commit1304be5fe0efb42b7ec6a50dd8e1a9bce2adae17 (patch)
treebc3d95ab7c1cc5d779df4696aaa138b7cbd89825 /drivers/scsi/libiscsi.c
parentdf1c7baba1b7b3053950f3845a6575aca47ba9ce (diff)
[SCSI] libiscsi_tcp: fix max_r2t manipulation
Problem description from Xi Wang: A large max_r2t could lead to integer overflow in subsequent call to iscsi_tcp_r2tpool_alloc(), allocating a smaller buffer than expected and leading to out-of-bounds write. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/libiscsi.c')
-rw-r--r--drivers/scsi/libiscsi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 00592e3bb375..8582d7c25732 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -3201,7 +3201,7 @@ int iscsi_set_param(struct iscsi_cls_conn *cls_conn,
3201 sscanf(buf, "%d", &session->initial_r2t_en); 3201 sscanf(buf, "%d", &session->initial_r2t_en);
3202 break; 3202 break;
3203 case ISCSI_PARAM_MAX_R2T: 3203 case ISCSI_PARAM_MAX_R2T:
3204 sscanf(buf, "%d", &session->max_r2t); 3204 sscanf(buf, "%hu", &session->max_r2t);
3205 break; 3205 break;
3206 case ISCSI_PARAM_IMM_DATA_EN: 3206 case ISCSI_PARAM_IMM_DATA_EN:
3207 sscanf(buf, "%d", &session->imm_data_en); 3207 sscanf(buf, "%d", &session->imm_data_en);