diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/inet/ip/ip6_input.c | 6 | ||||
-rw-r--r-- | usr/src/uts/common/inet/ip/ip_input.c | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/usr/src/uts/common/inet/ip/ip6_input.c b/usr/src/uts/common/inet/ip/ip6_input.c index 8a718dbc11..c7c241f944 100644 --- a/usr/src/uts/common/inet/ip/ip6_input.c +++ b/usr/src/uts/common/inet/ip/ip6_input.c @@ -21,6 +21,8 @@ /* * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved + * + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ /* Copyright (c) 1990 Mentat Inc. */ @@ -780,9 +782,9 @@ ill_input_short_v6(mblk_t *mp, void *iph_arg, void *nexthop_arg, ire_refrele(rtc->rtc_ire); rtc->rtc_ire = ire; rtc->rtc_ip6addr = nexthop; - } else if (IN6_ARE_ADDR_EQUAL(&nexthop, &rtc->rtc_ip6addr)) { + } else if (IN6_ARE_ADDR_EQUAL(&nexthop, &rtc->rtc_ip6addr) && + rtc->rtc_ire != NULL) { /* Use the route cache */ - ASSERT(rtc->rtc_ire != NULL); ire = rtc->rtc_ire; } else { /* Update the route cache */ diff --git a/usr/src/uts/common/inet/ip/ip_input.c b/usr/src/uts/common/inet/ip/ip_input.c index 933bafd11a..6aa70b014a 100644 --- a/usr/src/uts/common/inet/ip/ip_input.c +++ b/usr/src/uts/common/inet/ip/ip_input.c @@ -21,6 +21,8 @@ /* * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ /* Copyright (c) 1990 Mentat Inc. */ @@ -792,9 +794,8 @@ after_ilb: ire_refrele(rtc->rtc_ire); rtc->rtc_ire = ire; rtc->rtc_ipaddr = nexthop; - } else if (nexthop == rtc->rtc_ipaddr) { + } else if (nexthop == rtc->rtc_ipaddr && rtc->rtc_ire != NULL) { /* Use the route cache */ - ASSERT(rtc->rtc_ire != NULL); ire = rtc->rtc_ire; } else { /* Update the route cache */ |