diff options
author | yongari <yongari@FreeBSD.org> | 2010-11-15 22:05:08 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2010-11-15 22:05:08 +0000 |
commit | a163da94d9dd346a745eaedc9f0d794d961ac871 (patch) | |
tree | ae7d5a5447f6bfe05c7d4e11c9b140b98e82cde1 /sys/dev/nfe | |
parent | 1e501fb55ecad0ee864ac074b722f19efdaee266 (diff) | |
download | FreeBSD-src-a163da94d9dd346a745eaedc9f0d794d961ac871.zip FreeBSD-src-a163da94d9dd346a745eaedc9f0d794d961ac871.tar.gz |
Plug memory leakage introduced in r215327.
Submitted by: jkim
Diffstat (limited to 'sys/dev/nfe')
-rw-r--r-- | sys/dev/nfe/if_nfe.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/dev/nfe/if_nfe.c b/sys/dev/nfe/if_nfe.c index a56bb97..c77a4da 100644 --- a/sys/dev/nfe/if_nfe.c +++ b/sys/dev/nfe/if_nfe.c @@ -804,7 +804,7 @@ nfe_can_use_msix(struct nfe_softc *sc) struct msix_blacklist *mblp; char *maker, *product; - int count, n; + int count, n, use_msix; /* * Search base board manufacturer and product name table @@ -812,18 +812,25 @@ nfe_can_use_msix(struct nfe_softc *sc) */ maker = getenv("smbios.planar.maker"); product = getenv("smbios.planar.product"); + use_msix = 1; if (maker != NULL && product != NULL) { count = sizeof(msix_blacklists) / sizeof(msix_blacklists[0]); mblp = msix_blacklists; for (n = 0; n < count; n++) { if (strcmp(maker, mblp->maker) == 0 && - strcmp(product, mblp->product) == 0) - return (0); + strcmp(product, mblp->product) == 0) { + use_msix = 0; + break; + } mblp++; } } + if (maker != NULL) + freeenv(maker); + if (product != NULL) + freeenv(product); - return (1); + return (use_msix); } |