diff options
author | imp <imp@FreeBSD.org> | 2002-09-30 00:18:12 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2002-09-30 00:18:12 +0000 |
commit | f88281a4a8ebae7217732fd3f96bc00dfa1bfcd1 (patch) | |
tree | 15724f8313f4060a533258c50528daf602ec07e2 /sys/dev/ed | |
parent | fb1ad82fcfae29f5f57cc3d7b9337fad1c3517f5 (diff) | |
download | FreeBSD-src-f88281a4a8ebae7217732fd3f96bc00dfa1bfcd1.zip FreeBSD-src-f88281a4a8ebae7217732fd3f96bc00dfa1bfcd1.tar.gz |
mbuf leak in the error case has been fixed. When we have
an error, go ahead and m_freem the buffer.
PR: 32666
Submitted by: Chi-Fung Fan
Diffstat (limited to 'sys/dev/ed')
-rw-r--r-- | sys/dev/ed/if_ed.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/ed/if_ed.c b/sys/dev/ed/if_ed.c index d68da1e..66b0aa0 100644 --- a/sys/dev/ed/if_ed.c +++ b/sys/dev/ed/if_ed.c @@ -2105,8 +2105,10 @@ outloop: } } else { len = ed_pio_write_mbufs(sc, m, (int)buffer); - if (len == 0) + if (len == 0) { + m_freem(m0); goto outloop; + } } sc->txb_len[sc->txb_new] = max(len, (ETHER_MIN_LEN-ETHER_CRC_LEN)); |