Module Name: src
Committed By: snj
Date: Sat Nov 21 19:43:41 UTC 2009
Modified Files:
src/sys/net [netbsd-5]: if_arcsubr.c if_ethersubr.c if_fddisubr.c
if_tokensubr.c
src/sys/netinet [netbsd-5]: if_arp.c
Log Message:
Pull up following revision(s) (requested by christos in ticket #1156):
sys/net/if_arcsubr.c: revision 1.61
sys/net/if_ethersubr.c: revision 1.173
sys/net/if_fddisubr.c: revision 1.78
sys/net/if_tokensubr.c: revision 1.58 via patch
sys/netinet/if_arp.c: revision 1.149
ar_tha() can return NULL; treat this as an error.
To generate a diff of this commit:
cvs rdiff -u -r1.59 -r1.59.20.1 src/sys/net/if_arcsubr.c
cvs rdiff -u -r1.169.4.1 -r1.169.4.2 src/sys/net/if_ethersubr.c
cvs rdiff -u -r1.76 -r1.76.8.1 src/sys/net/if_fddisubr.c
cvs rdiff -u -r1.54 -r1.54.10.1 src/sys/net/if_tokensubr.c
cvs rdiff -u -r1.143.4.1 -r1.143.4.2 src/sys/netinet/if_arp.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/net/if_arcsubr.c
diff -u src/sys/net/if_arcsubr.c:1.59 src/sys/net/if_arcsubr.c:1.59.20.1
--- src/sys/net/if_arcsubr.c:1.59 Wed Feb 20 17:05:52 2008
+++ src/sys/net/if_arcsubr.c Sat Nov 21 19:43:41 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_arcsubr.c,v 1.59 2008/02/20 17:05:52 matt Exp $ */
+/* $NetBSD: if_arcsubr.c,v 1.59.20.1 2009/11/21 19:43:41 snj Exp $ */
/*
* Copyright (c) 1994, 1995 Ignatios Souvatzis
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_arcsubr.c,v 1.59 2008/02/20 17:05:52 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_arcsubr.c,v 1.59.20.1 2009/11/21 19:43:41 snj Exp $");
#include "opt_inet.h"
@@ -197,8 +197,12 @@
arph = mtod(m, struct arphdr *);
if (m->m_flags & M_BCAST)
adst = arcbroadcastaddr;
- else
- adst = *ar_tha(arph);
+ else {
+ uint8_t *tha = ar_tha(arph);
+ if (tha == NULL)
+ return 0;
+ adst = *tha;
+ }
arph->ar_hrd = htons(ARPHRD_ARCNET);
Index: src/sys/net/if_ethersubr.c
diff -u src/sys/net/if_ethersubr.c:1.169.4.1 src/sys/net/if_ethersubr.c:1.169.4.2
--- src/sys/net/if_ethersubr.c:1.169.4.1 Fri Jun 5 18:49:42 2009
+++ src/sys/net/if_ethersubr.c Sat Nov 21 19:43:41 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ethersubr.c,v 1.169.4.1 2009/06/05 18:49:42 snj Exp $ */
+/* $NetBSD: if_ethersubr.c,v 1.169.4.2 2009/11/21 19:43:41 snj Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.169.4.1 2009/06/05 18:49:42 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.169.4.2 2009/11/21 19:43:41 snj Exp $");
#include "opt_inet.h"
#include "opt_atalk.h"
@@ -301,7 +301,10 @@
else {
void *tha = ar_tha(ah);
- KASSERT(tha);
+ if (tha == NULL) {
+ /* fake with ARPHDR_IEEE1394 */
+ return 0;
+ }
memcpy(edst, tha, sizeof(edst));
}
Index: src/sys/net/if_fddisubr.c
diff -u src/sys/net/if_fddisubr.c:1.76 src/sys/net/if_fddisubr.c:1.76.8.1
--- src/sys/net/if_fddisubr.c:1.76 Sun May 11 20:13:30 2008
+++ src/sys/net/if_fddisubr.c Sat Nov 21 19:43:41 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_fddisubr.c,v 1.76 2008/05/11 20:13:30 dyoung Exp $ */
+/* $NetBSD: if_fddisubr.c,v 1.76.8.1 2009/11/21 19:43:41 snj Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -96,7 +96,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_fddisubr.c,v 1.76 2008/05/11 20:13:30 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_fddisubr.c,v 1.76.8.1 2009/11/21 19:43:41 snj Exp $");
#include "opt_inet.h"
#include "opt_atalk.h"
@@ -306,8 +306,8 @@
memcpy(edst, etherbroadcastaddr, sizeof(edst));
else {
void *tha = ar_tha(ah);
-
- KASSERT(tha);
+ if (tha == NULL)
+ return 0;
memcpy(edst, tha, sizeof(edst));
}
Index: src/sys/net/if_tokensubr.c
diff -u src/sys/net/if_tokensubr.c:1.54 src/sys/net/if_tokensubr.c:1.54.10.1
--- src/sys/net/if_tokensubr.c:1.54 Mon Apr 28 20:24:09 2008
+++ src/sys/net/if_tokensubr.c Sat Nov 21 19:43:41 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_tokensubr.c,v 1.54 2008/04/28 20:24:09 martin Exp $ */
+/* $NetBSD: if_tokensubr.c,v 1.54.10.1 2009/11/21 19:43:41 snj Exp $ */
/*
* Copyright (c) 1982, 1989, 1993
@@ -92,7 +92,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_tokensubr.c,v 1.54 2008/04/28 20:24:09 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_tokensubr.c,v 1.54.10.1 2009/11/21 19:43:41 snj Exp $");
#include "opt_inet.h"
#include "opt_atalk.h"
@@ -308,10 +308,10 @@
memcpy(edst, tokenbroadcastaddr, sizeof(edst));
}
else {
- void *tha = (void *)ar_tha(ah);
- KASSERT(tha);
- if (tha)
- bcopy(tha, (void *)edst, sizeof(edst));
+ void *tha = ar_tha(ah);
+ if (tha == NULL)
+ return 0;
+ bcopy(tha, (void *)edst, sizeof(edst));
trh = (struct token_header *)M_TRHSTART(m);
trh->token_ac = TOKEN_AC;
trh->token_fc = TOKEN_FC;
Index: src/sys/netinet/if_arp.c
diff -u src/sys/netinet/if_arp.c:1.143.4.1 src/sys/netinet/if_arp.c:1.143.4.2
--- src/sys/netinet/if_arp.c:1.143.4.1 Sat Sep 5 11:44:07 2009
+++ src/sys/netinet/if_arp.c Sat Nov 21 19:43:41 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_arp.c,v 1.143.4.1 2009/09/05 11:44:07 bouyer Exp $ */
+/* $NetBSD: if_arp.c,v 1.143.4.2 2009/11/21 19:43:41 snj Exp $ */
/*-
* Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.143.4.1 2009/09/05 11:44:07 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.143.4.2 2009/11/21 19:43:41 snj Exp $");
#include "opt_ddb.h"
#include "opt_inet.h"
@@ -1387,7 +1387,8 @@
if (myip_initialized)
goto wake;
tha = ar_tha(ah);
- KASSERT(tha);
+ if (tha == NULL)
+ goto out;
if (memcmp(tha, CLLADDR(ifp->if_sadl), ifp->if_sadl->sdl_alen))
goto out;
memcpy(&srv_ip, ar_spa(ah), sizeof(srv_ip));
@@ -1428,7 +1429,8 @@
memcpy(ar_sha(ah), CLLADDR(ifp->if_sadl), ah->ar_hln);
tha = ar_tha(ah);
- KASSERT(tha);
+ if (tha == NULL)
+ return;
memcpy(tha, CLLADDR(ifp->if_sadl), ah->ar_hln);
sa.sa_family = AF_ARP;