summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-11-15 23:13:25 +0000
committerjkim <jkim@FreeBSD.org>2010-11-15 23:13:25 +0000
commit0c10682445efd2f8b8aff8810b5399ffef87e03a (patch)
treeed94012434aa9d7e5cd1f26d9c4380de9a9a2435 /sys/dev/mii
parented2379efaf37560d82a8401aaf93162bfba2892e (diff)
downloadFreeBSD-src-0c10682445efd2f8b8aff8810b5399ffef87e03a.zip
FreeBSD-src-0c10682445efd2f8b8aff8810b5399ffef87e03a.tar.gz
Plug memory leakage introduced in r204989.
Reported by: yongari
Diffstat (limited to 'sys/dev/mii')
-rw-r--r--sys/dev/mii/brgphy.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c
index 96947d4..72e1ac7 100644
--- a/sys/dev/mii/brgphy.c
+++ b/sys/dev/mii/brgphy.c
@@ -154,15 +154,18 @@ static int
detect_hs21(struct bce_softc *bce_sc)
{
char *sysenv;
-
- if (bce_sc->bce_chipid != HS21_BCM_CHIPID)
- return (0);
- sysenv = getenv("smbios.system.product");
- if (sysenv == NULL)
- return (0);
- if (strncmp(sysenv, HS21_PRODUCT_ID, strlen(HS21_PRODUCT_ID)) != 0)
- return (0);
- return (1);
+ int found;
+
+ found = 0;
+ if (bce_sc->bce_chipid == HS21_BCM_CHIPID) {
+ sysenv = getenv("smbios.system.product");
+ if (sysenv != NULL) {
+ if (strcmp(sysenv, HS21_PRODUCT_ID) == 0)
+ found = 1;
+ freeenv(sysenv);
+ }
+ }
+ return (found);
}
/* Search for our PHY in the list of known PHYs */
OpenPOWER on IntegriCloud