Module Name: src Committed By: msaitoh Date: Wed Dec 18 13:25:00 UTC 2019
Modified Files: src/sys/dev/pci: if_alc.c Log Message: Cast to uint32_t to avoid undefined behavior. Found by kUBSan. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/dev/pci/if_alc.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_alc.c diff -u src/sys/dev/pci/if_alc.c:1.45 src/sys/dev/pci/if_alc.c:1.46 --- src/sys/dev/pci/if_alc.c:1.45 Sun Dec 1 08:16:49 2019 +++ src/sys/dev/pci/if_alc.c Wed Dec 18 13:25:00 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_alc.c,v 1.45 2019/12/01 08:16:49 msaitoh Exp $ */ +/* $NetBSD: if_alc.c,v 1.46 2019/12/18 13:25:00 msaitoh Exp $ */ /* $OpenBSD: if_alc.c,v 1.1 2009/08/08 09:31:13 kevlo Exp $ */ /*- * Copyright (c) 2009, Pyun YongHyeon <yong...@freebsd.org> @@ -2815,8 +2815,8 @@ alc_init_backend(struct ifnet *ifp, bool /* Reprogram the station address. */ memcpy(eaddr, CLLADDR(ifp->if_sadl), sizeof(eaddr)); - CSR_WRITE_4(sc, ALC_PAR0, - eaddr[2] << 24 | eaddr[3] << 16 | eaddr[4] << 8 | eaddr[5]); + CSR_WRITE_4(sc, ALC_PAR0, (uint32_t)eaddr[2] << 24 + | eaddr[3] << 16 | eaddr[4] << 8 | eaddr[5]); CSR_WRITE_4(sc, ALC_PAR1, eaddr[0] << 8 | eaddr[1]); /* * Clear WOL status and disable all WOL feature as WOL