Module Name: src Committed By: snj Date: Sat Nov 21 19:56:35 UTC 2009
Modified Files: src/sys/net [netbsd-5-0]: if_arcsubr.c if_ethersubr.c if_fddisubr.c if_tokensubr.c src/sys/netinet [netbsd-5-0]: 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.22.1 src/sys/net/if_arcsubr.c cvs rdiff -u -r1.169 -r1.169.6.1 src/sys/net/if_ethersubr.c cvs rdiff -u -r1.76 -r1.76.10.1 src/sys/net/if_fddisubr.c cvs rdiff -u -r1.54 -r1.54.12.1 src/sys/net/if_tokensubr.c cvs rdiff -u -r1.143 -r1.143.6.1 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.22.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:56:35 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.22.1 2009/11/21 19:56:35 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.22.1 2009/11/21 19:56:35 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 src/sys/net/if_ethersubr.c:1.169.6.1 --- src/sys/net/if_ethersubr.c:1.169 Wed Jul 23 06:34:31 2008 +++ src/sys/net/if_ethersubr.c Sat Nov 21 19:56:35 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ethersubr.c,v 1.169 2008/07/23 06:34:31 dyoung Exp $ */ +/* $NetBSD: if_ethersubr.c,v 1.169.6.1 2009/11/21 19:56:35 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 2008/07/23 06:34:31 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.169.6.1 2009/11/21 19:56:35 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.10.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:56:35 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.10.1 2009/11/21 19:56:35 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.10.1 2009/11/21 19:56:35 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.12.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:56:35 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.12.1 2009/11/21 19:56:35 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.12.1 2009/11/21 19:56:35 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 src/sys/netinet/if_arp.c:1.143.6.1 --- src/sys/netinet/if_arp.c:1.143 Fri Oct 24 17:07:33 2008 +++ src/sys/netinet/if_arp.c Sat Nov 21 19:56:35 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: if_arp.c,v 1.143 2008/10/24 17:07:33 dyoung Exp $ */ +/* $NetBSD: if_arp.c,v 1.143.6.1 2009/11/21 19:56:35 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 2008/10/24 17:07:33 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.143.6.1 2009/11/21 19:56:35 snj Exp $"); #include "opt_ddb.h" #include "opt_inet.h" @@ -1385,7 +1385,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)); @@ -1426,7 +1427,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;