]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix a possible mbuf double free in bwn_dma_tx_start().
authormarkj <markj@FreeBSD.org>
Wed, 12 Dec 2018 15:49:14 +0000 (15:49 +0000)
committermarkj <markj@FreeBSD.org>
Wed, 12 Dec 2018 15:49:14 +0000 (15:49 +0000)
commit9732b465b496b59a9b43a37c04adf06885599330
treeb90a21323b33cedc869bdf6b7eab9cbb47dfa084
parenta2c56ebd1d9dbd4b8ab815a2a256cc454aaf3ca9
Fix a possible mbuf double free in bwn_dma_tx_start().

If bus_dmamap_load_mbuf() fails following a defrag, the caller of
bwn_dma_tx_start() would free the original mbuf after m_defrag() had
already done so.  Fix this by returning the defragged mbuf to the
caller instead.  Update bwn_pio_tx_start() similarly for consistency.

Reported by: Ilja Van Sprundel <ivansprundel@ioactive.com>
Reviewed by: landonf
Tested by: landonf
MFC after: 3 days
admbug: 820
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D18342
sys/dev/bwn/if_bwn.c