Module Name: src Committed By: jnemeth Date: Wed Jul 14 04:50:28 UTC 2010
Modified Files: src/sys/dev/pci: if_cas.c Log Message: Don't leak kernel stack data when an enaddr can't be found. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/dev/pci/if_cas.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_cas.c diff -u src/sys/dev/pci/if_cas.c:1.9 src/sys/dev/pci/if_cas.c:1.10 --- src/sys/dev/pci/if_cas.c:1.9 Thu Jun 17 06:41:05 2010 +++ src/sys/dev/pci/if_cas.c Wed Jul 14 04:50:28 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_cas.c,v 1.9 2010/06/17 06:41:05 mrg Exp $ */ +/* $NetBSD: if_cas.c,v 1.10 2010/07/14 04:50:28 jnemeth Exp $ */ /* $OpenBSD: if_cas.c,v 1.29 2009/11/29 16:19:38 kettenis Exp $ */ /* @@ -44,7 +44,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_cas.c,v 1.9 2010/06/17 06:41:05 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_cas.c,v 1.10 2010/07/14 04:50:28 jnemeth Exp $"); #include "opt_inet.h" @@ -335,8 +335,10 @@ if ((data = prop_dictionary_get(device_properties(sc->sc_dev), "mac-address")) != NULL) memcpy(enaddr, prop_data_data_nocopy(data), ETHER_ADDR_LEN); - else if (cas_pci_enaddr(sc, pa, enaddr) != 0) + else if (cas_pci_enaddr(sc, pa, enaddr) != 0) { aprint_error_dev(sc->sc_dev, "no Ethernet address found\n"); + memset(enaddr, 0, sizeof(enaddr)); + } sc->sc_burst = 16; /* XXX */