Module Name: src
Committed By: martin
Date: Sat Feb 21 11:39:05 UTC 2015
Modified Files:
src/sys/dev/ic: i82596.c
Log Message:
Fix multicast handling (and while there a bogus memcpy).
Fixes PR kern/49472, patch from Nick Hudson.
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/dev/ic/i82596.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/ic/i82596.c
diff -u src/sys/dev/ic/i82596.c:1.31 src/sys/dev/ic/i82596.c:1.32
--- src/sys/dev/ic/i82596.c:1.31 Mon Feb 24 07:23:43 2014
+++ src/sys/dev/ic/i82596.c Sat Feb 21 11:39:05 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: i82596.c,v 1.31 2014/02/24 07:23:43 skrll Exp $ */
+/* $NetBSD: i82596.c,v 1.32 2015/02/21 11:39:05 martin Exp $ */
/*
* Copyright (c) 2003 Jochen Kunz.
@@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i82596.c,v 1.31 2014/02/24 07:23:43 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i82596.c,v 1.32 2015/02/21 11:39:05 martin Exp $");
/* autoconfig and device stuff */
#include <sys/param.h>
@@ -513,10 +513,10 @@ iee_cb_setup(struct iee_softc *sc, uint3
break;
}
memcpy(__UNVOLATILE(&cb->cb_mcast.mc_addrs[
- cb->cb_mcast.mc_size * ETHER_ADDR_LEN]),
+ cb->cb_mcast.mc_size]),
enm->enm_addrlo, ETHER_ADDR_LEN);
ETHER_NEXT_MULTI(step, enm);
- cb->cb_mcast.mc_size++;
+ cb->cb_mcast.mc_size += ETHER_ADDR_LEN;
}
if (cb->cb_mcast.mc_size == 0) {
/* Can't do exact mcast filtering, do ALLMULTI mode. */