Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64b8aa75 authored by Jesper Juhl's avatar Jesper Juhl Committed by James Bottomley
Browse files

[SCSI] bfa: don't leak mem in bfad_im_bsg_els_ct_request()



If 'drv_fcxp = kzalloc(sizeof(struct bfad_fcxp), GFP_KERNEL);' fails
and returns NULL, then we'll leak the memory allocated to 'bsg_fcpt'
when we jump to 'out:' and the variable subsequently goes out of
scope.

Also remove the cast of the kzalloc() return value. kzalloc() returns
a void* which is implicitly converted, so the explicit cast is
pointless.

Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
Acked-by: default avatarKrishna Gudipati <kgudipat@brocade.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent e5cc6aa4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3047,8 +3047,7 @@ bfad_im_bsg_els_ct_request(struct fc_bsg_job *job)
	 * Allocate buffer for bsg_fcpt and do a copy_from_user op for payload
	 * buffer of size bsg_data->payload_len
	 */
	bsg_fcpt = (struct bfa_bsg_fcpt_s *)
		   kzalloc(bsg_data->payload_len, GFP_KERNEL);
	bsg_fcpt = kzalloc(bsg_data->payload_len, GFP_KERNEL);
	if (!bsg_fcpt)
		goto out;

@@ -3060,6 +3059,7 @@ bfad_im_bsg_els_ct_request(struct fc_bsg_job *job)

	drv_fcxp = kzalloc(sizeof(struct bfad_fcxp), GFP_KERNEL);
	if (drv_fcxp == NULL) {
		kfree(bsg_fcpt);
		rc = -ENOMEM;
		goto out;
	}