[SCSI] bfa: dereferencing freed memory in bfad_im_probe()
If bfad_thread_workq(bfad) was not BFA_STATUS_OK then we freed "im" and then dereferenced it. I did a little clean up because it seemed nicer to return directly instead of doing a superfluous goto. I looked at other functions in this file and it seems like returning directly is standard. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Krishna Gudipati <kgudipat@brocade.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
fffa69230b
commit
a5254dbb17
@ -687,25 +687,21 @@ bfa_status_t
|
||||
bfad_im_probe(struct bfad_s *bfad)
|
||||
{
|
||||
struct bfad_im_s *im;
|
||||
bfa_status_t rc = BFA_STATUS_OK;
|
||||
|
||||
im = kzalloc(sizeof(struct bfad_im_s), GFP_KERNEL);
|
||||
if (im == NULL) {
|
||||
rc = BFA_STATUS_ENOMEM;
|
||||
goto ext;
|
||||
}
|
||||
if (im == NULL)
|
||||
return BFA_STATUS_ENOMEM;
|
||||
|
||||
bfad->im = im;
|
||||
im->bfad = bfad;
|
||||
|
||||
if (bfad_thread_workq(bfad) != BFA_STATUS_OK) {
|
||||
kfree(im);
|
||||
rc = BFA_STATUS_FAILED;
|
||||
return BFA_STATUS_FAILED;
|
||||
}
|
||||
|
||||
INIT_WORK(&im->aen_im_notify_work, bfad_aen_im_notify_handler);
|
||||
ext:
|
||||
return rc;
|
||||
return BFA_STATUS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user