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

Reply via email to