Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/ic Use unsigned to avoid undefined behavior. Found b...



details:   https://anonhg.NetBSD.org/src/rev/ed705046331c
branches:  trunk
changeset: 1008113:ed705046331c
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Wed Mar 11 16:20:57 2020 +0000

description:
Use unsigned to avoid undefined behavior. Found by kUBSan.

diffstat:

 sys/dev/ic/tulip.c |  16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diffs (44 lines):

diff -r bdb8000e5ef5 -r ed705046331c sys/dev/ic/tulip.c
--- a/sys/dev/ic/tulip.c        Wed Mar 11 16:13:49 2020 +0000
+++ b/sys/dev/ic/tulip.c        Wed Mar 11 16:20:57 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: tulip.c,v 1.202 2020/02/04 05:25:39 thorpej Exp $      */
+/*     $NetBSD: tulip.c,v 1.203 2020/03/11 16:20:57 msaitoh Exp $      */
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.202 2020/02/04 05:25:39 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.203 2020/03/11 16:20:57 msaitoh Exp $");
 
 
 #include <sys/param.h>
@@ -1887,9 +1887,9 @@
                const uint8_t *enaddr = CLLADDR(ifp->if_sadl);
 
                reg = enaddr[0] |
-                     (enaddr[1] << 8) |
-                     (enaddr[2] << 16) |
-                     (enaddr[3] << 24);
+                   (enaddr[1] << 8) |
+                   (enaddr[2] << 16) |
+                   ((uint32_t)enaddr[3] << 24);
                bus_space_write_4(sc->sc_st, sc->sc_sh, CSR_ADM_PAR0, reg);
 
                reg = enaddr[4] |
@@ -1905,9 +1905,9 @@
                const uint8_t *enaddr = CLLADDR(ifp->if_sadl);
 
                reg = enaddr[0] |
-                     (enaddr[1] << 8) |
-                     (enaddr[2] << 16) |
-                     (enaddr[3] << 24);
+                   (enaddr[1] << 8) |
+                   (enaddr[2] << 16) |
+                   ((uint32_t)enaddr[3] << 24);
                TULIP_WRITE(sc, CSR_AX_FILTIDX, AX_FILTIDX_PAR0);
                TULIP_WRITE(sc, CSR_AX_FILTDATA, reg);
 



Home | Main Index | Thread Index | Old Index