DragonFly BSD
DragonFly submit List (threaded) for 2004-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: use after free bugs


From: YONETANI Tomokazu <qhwt+dragonfly-submit@xxxxxxxxxx>
Date: Sun, 22 Feb 2004 21:59:27 +0900

On Thu, Feb 19, 2004 at 05:43:53PM -0800, Ted Unangst wrote:
> Hi.  These are some bugs found by Coverity in a static analysis run on the
> FreeBSD kernel.  All these are use after free bugs.

[snip]

> [UNINSPECTED]
> X [BUG]
> X [FALSE]
> X [UNKNOWN]
> X [BROKE]
> X [SKIP]
> /home/tedu/sys/dev/ips/ips_commands.c|517|ips_ffdc_reset|ERROR|FREE|514|517| Using freed "status", deallocated by call to "free". [START_RELAX0=filename|none,fn|free,line1|none,line2|-1,argno|0]
> 
> 	status = malloc(sizeof(ips_cmd_status_t), M_DEVBUF, M_NOWAIT|M_ZERO);
> 	if(!status)
> 		return ENOMEM;
> 	if(ips_get_free_cmd(sc, ips_send_ffdc_reset_cmd, status,
> 			    IPS_NOWAIT_FLAG)){
> Start --->
> 		free(status, M_DEVBUF);
> 		device_printf(sc->dev, "ERROR: unable to get a command! can't send ffdc reset!\n");
> 	}
> Error --->
> 	if(COMMAND_ERROR(status)){
> 		device_printf(sc->dev, "ERROR: ffdc reset command failed!\n");
> 	}
> 	free(status, M_DEVBUF);
> 	return 0;
> }
> ---------------------------------------------------------

Attached patch should fix this, as well as other places similar to
this. Tested that both gcc2 and gcc3 compiled the patched code.

Regards.

Attachment: ips.diff.gz
Description: application/gunzip



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