diff options
author | sam <sam@FreeBSD.org> | 2005-02-25 00:16:53 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-02-25 00:16:53 +0000 |
commit | 95526fd399bede1a30fa761baf2d96e72031ee55 (patch) | |
tree | 0280252839f029ba7ad4c31dd61d27320768e6ff | |
parent | 9ad2b03bb585fe6c3f96474adffe9d61d3c7e3de (diff) | |
download | FreeBSD-src-95526fd399bede1a30fa761baf2d96e72031ee55.zip FreeBSD-src-95526fd399bede1a30fa761baf2d96e72031ee55.tar.gz |
avoid sneaky double free
Noticed by: Coverity Prevent analysis tool
Reviewed by: scottl
-rw-r--r-- | sys/contrib/dev/hptmv/ioctl.c | 6 | ||||
-rw-r--r-- | sys/dev/hptmv/ioctl.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sys/contrib/dev/hptmv/ioctl.c b/sys/contrib/dev/hptmv/ioctl.c index 2e220cb..2cfe979 100644 --- a/sys/contrib/dev/hptmv/ioctl.c +++ b/sys/contrib/dev/hptmv/ioctl.c @@ -781,7 +781,11 @@ retry_cmd: result = pCmd->Result; FreeCommand(_VBUS_P pCmd); - if (buffer) free(buffer, M_DEVBUF); + if (buffer) { + free(buffer, M_DEVBUF); + /* beware of goto retry_cmd below */ + buffer = NULL; + } KdPrintI(("cmd finished %d", result)); switch(result) diff --git a/sys/dev/hptmv/ioctl.c b/sys/dev/hptmv/ioctl.c index 2e220cb..2cfe979 100644 --- a/sys/dev/hptmv/ioctl.c +++ b/sys/dev/hptmv/ioctl.c @@ -781,7 +781,11 @@ retry_cmd: result = pCmd->Result; FreeCommand(_VBUS_P pCmd); - if (buffer) free(buffer, M_DEVBUF); + if (buffer) { + free(buffer, M_DEVBUF); + /* beware of goto retry_cmd below */ + buffer = NULL; + } KdPrintI(("cmd finished %d", result)); switch(result) |