diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2010-12-31 02:22:20 -0600 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-12-31 09:52:42 -0600 |
commit | 1227633a441363642cdbaf38c4241d071e917095 (patch) | |
tree | 51b7ec4bc1d56b103bf74c5273a0d2b0e70abf70 /drivers/scsi | |
parent | bc7accec8788ada4f459461194c2b8fad94ed239 (diff) | |
download | linux-1227633a441363642cdbaf38c4241d071e917095.tar.gz linux-1227633a441363642cdbaf38c4241d071e917095.tar.bz2 linux-1227633a441363642cdbaf38c4241d071e917095.zip |
[SCSI] be2iscsi: fix null ptr when accessing task hdr
If alloc_pdu fails then the task->hdr pointer may not be
set. This adds a check for this case in the cleanup callback.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/be2iscsi/be_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index be07ca06177e..79cefbe31367 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c @@ -3914,7 +3914,8 @@ static void beiscsi_cleanup_task(struct iscsi_task *task) io_task->psgl_handle = NULL; } } else { - if ((task->hdr->opcode & ISCSI_OPCODE_MASK) == ISCSI_OP_LOGIN) + if (task->hdr && + ((task->hdr->opcode & ISCSI_OPCODE_MASK) == ISCSI_OP_LOGIN)) return; if (io_task->psgl_handle) { spin_lock(&phba->mgmt_sgl_lock); |