svn commit: r186023 - projects/arpv2_merge_1/sys/net
Kip Macy
kmacy at FreeBSD.org
Fri Dec 12 21:28:20 PST 2008
Author: kmacy
Date: Sat Dec 13 05:28:19 2008
New Revision: 186023
URL: http://svn.freebsd.org/changeset/base/186023
Log:
check lle against both NULL AND -1 to determine validity
Modified:
projects/arpv2_merge_1/sys/net/if_llatbl.c
projects/arpv2_merge_1/sys/net/if_llatbl.h
Modified: projects/arpv2_merge_1/sys/net/if_llatbl.c
==============================================================================
--- projects/arpv2_merge_1/sys/net/if_llatbl.c Sat Dec 13 04:52:57 2008 (r186022)
+++ projects/arpv2_merge_1/sys/net/if_llatbl.c Sat Dec 13 05:28:19 2008 (r186023)
@@ -255,7 +255,7 @@ lla_rt_output(struct rt_msghdr *rtm, str
IF_AFDATA_LOCK(ifp);
lle = lla_lookup(llt, flags, dst);
IF_AFDATA_UNLOCK(ifp);
- if (lle != NULL) {
+ if (LLE_IS_VALID(lle)) {
if (flags & LLE_CREATE) {
/*
* If we delay the delete, then a subsequent
Modified: projects/arpv2_merge_1/sys/net/if_llatbl.h
==============================================================================
--- projects/arpv2_merge_1/sys/net/if_llatbl.h Sat Dec 13 04:52:57 2008 (r186022)
+++ projects/arpv2_merge_1/sys/net/if_llatbl.h Sat Dec 13 05:28:19 2008 (r186023)
@@ -83,6 +83,8 @@ struct llentry {
#define LLE_LOCK_INIT(lle) rw_init_flags(&(lle)->lle_lock, "lle", RW_DUPOK)
#define LLE_WLOCK_ASSERT(lle) rw_assert(&(lle)->lle_lock, RA_WLOCKED)
+#define LLE_IS_VALID(lle) (((lle) != NULL) && ((lle) != (void *)-1))
+
#define LLE_ADDREF(lle) do { \
LLE_WLOCK_ASSERT(lle); \
KASSERT((lle)->lle_refcnt >= 0, \
More information about the svn-src-projects
mailing list