diff options
author | weongyo <weongyo@FreeBSD.org> | 2009-03-30 08:39:42 +0000 |
---|---|---|
committer | weongyo <weongyo@FreeBSD.org> | 2009-03-30 08:39:42 +0000 |
commit | 96b9a81fd8f883257674bf829243b5ee4b7e74df (patch) | |
tree | af024ee3d68cdbb7b53c0e4fe30c8127355f42d6 /sys/dev/malo | |
parent | 84a2f3fa57d0f9a910d58cd7f9183de1e7bb34cd (diff) | |
download | FreeBSD-src-96b9a81fd8f883257674bf829243b5ee4b7e74df.zip FreeBSD-src-96b9a81fd8f883257674bf829243b5ee4b7e74df.tar.gz |
fix a bug of uses after free.
Pointed by: dchagin
MFC after: 3 days
Diffstat (limited to 'sys/dev/malo')
-rw-r--r-- | sys/dev/malo/if_malohal.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/malo/if_malohal.c b/sys/dev/malo/if_malohal.c index b14bff2..7919f7c 100644 --- a/sys/dev/malo/if_malohal.c +++ b/sys/dev/malo/if_malohal.c @@ -163,8 +163,6 @@ malo_hal_attach(device_t dev, uint16_t devid, return (mh); fail: - free(mh, M_DEVBUF); - if (mh->mh_dmamap != NULL) { bus_dmamap_unload(mh->mh_dmat, mh->mh_dmamap); if (mh->mh_cmdbuf != NULL) @@ -174,6 +172,7 @@ fail: } if (mh->mh_dmat) bus_dma_tag_destroy(mh->mh_dmat); + free(mh, M_DEVBUF); return (NULL); } |