svn commit: r264422 - head/sys/kern

Christian Brueffer brueffer at FreeBSD.org
Sun Apr 13 21:56:06 UTC 2014


On 4/13/14 11:46 PM, Konstantin Belousov wrote:
> On Sun, Apr 13, 2014 at 09:23:16PM +0000, Christian Brueffer wrote:
>> Author: brueffer
>> Date: Sun Apr 13 21:23:15 2014
>> New Revision: 264422
>> URL: http://svnweb.freebsd.org/changeset/base/264422
>>
>> Log:
>>   Free buf after usage.
>>   
>>   CID:		1199377
>>   Found with:	Coverity Prevent(tm)
>>   MFC after:	1 week
>>
>> Modified:
>>   head/sys/kern/imgact_elf.c
>>
>> Modified: head/sys/kern/imgact_elf.c
>> ==============================================================================
>> --- head/sys/kern/imgact_elf.c	Sun Apr 13 21:13:33 2014	(r264421)
>> +++ head/sys/kern/imgact_elf.c	Sun Apr 13 21:23:15 2014	(r264422)
>> @@ -1746,8 +1746,10 @@ __elfN(note_threadmd)(void *arg, struct 
>>  	size = 0;
>>  	__elfN(dump_thread)(td, buf, &size);
>>  	KASSERT(*sizep == size, ("invalid size"));
>> -	if (size != 0 && sb != NULL)
>> +	if (size != 0 && sb != NULL) {
>>  		sbuf_bcat(sb, buf, size);
>> +		free(buf, M_TEMP);
>> +	}
>>  	*sizep = size;
>>  }
>>  
> Why conditioning free() on size != 0 ?
> IMO free(buf) must be done always, since buf is initialized for the case
> when malloc() is not called.
> 

The corresponding malloc() call is behind a similar conditional, so it
seemed good to be symmetrical here (since buf if NULL otherwise anyway).

I can change it to call free() unconditionally if you prefer, I don't
mind either way.

Chris

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1036 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20140413/13f1c797/attachment.sig>


More information about the svn-src-all mailing list