diff options
author | Dan Carpenter <error27@gmail.com> | 2010-06-01 12:17:48 +0200 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-06-01 12:17:48 +0200 |
commit | 713b686494a577b3c4f4f9f585a4705fc30d51c2 (patch) | |
tree | 3b7fa639a3b1bf1a6addd0d317558ca66bf9dd6c /drivers/block/cciss_scsi.c | |
parent | 099c5c310e9744bd0654881bb55c137051228e56 (diff) | |
download | linux-713b686494a577b3c4f4f9f585a4705fc30d51c2.tar.gz linux-713b686494a577b3c4f4f9f585a4705fc30d51c2.tar.xz |
cciss: call BUG() earlier
I moved the range check after the increment. The current code would
write past the end of the array once before calling BUG().
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/block/cciss_scsi.c')
-rw-r--r-- | drivers/block/cciss_scsi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/cciss_scsi.c b/drivers/block/cciss_scsi.c index e1d0e2cfec72..3381505c8a6c 100644 --- a/drivers/block/cciss_scsi.c +++ b/drivers/block/cciss_scsi.c @@ -188,11 +188,11 @@ scsi_cmd_free(ctlr_info_t *h, CommandList_struct *cmd) sa = h->scsi_ctlr; stk = &sa->cmd_stack; + stk->top++; if (stk->top >= CMD_STACK_SIZE) { printk("cciss: scsi_cmd_free called too many times.\n"); BUG(); } - stk->top++; stk->elem[stk->top] = (struct cciss_scsi_cmd_stack_elem_t *) cmd; } |