Re: [Open-FCoE] [PATCH 1/2] libfc: fix memory leakage in local port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2010-10-28 at 16:31 -0700, Joe Eykholt wrote:
> 
> On 10/28/10 4:12 PM, Robert Love wrote:
> > On Wed, 2010-10-27 at 20:40 +0800, Hillf Danton wrote:
> >> There seems info should get freed when error encountered.
> >>
> >> Signed-off-by: Hillf Danton <dhillf@xxxxxxxxx>
> >> ---
> >>
> >> --- a/drivers/scsi/libfc/fc_lport.c	2010-09-13 07:07:38.000000000 +0800
> >> +++ b/drivers/scsi/libfc/fc_lport.c	2010-10-27 20:33:36.000000000 +0800
> >> @@ -1766,8 +1766,10 @@ static int fc_lport_ct_request(struct fc
> >>  	info->sg = job->reply_payload.sg_list;
> >>
> >>  	if (!lport->tt.exch_seq_send(lport, fp, fc_lport_bsg_resp,
> >> -				     NULL, info, tov))
> >> +				     NULL, info, tov)) {
> >> +		kfree(info);
> > 
> > We cannot free the BSG info here. If you look at fc_exch_seq_send you
> > can see that it's attached to the exchange and then when the response is
> > received it is passed to the response handler, in the case
> > fc_lport_bsg_resp, where it is free'd.
> 
> This is on failure of seq_send().  It's confusing because that returns the
> sequence, which is NULL on error.  So, I think the kfree() is correct.
> 
> > 
> >>  		return -ECOMM;

Ah, you're right... and that's why we return an error. Thanks Joe.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux