summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if_ethersubr.c6
-rw-r--r--sys/net/if_fddisubr.c1
2 files changed, 6 insertions, 1 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 5d536aa..5e98e53 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -261,14 +261,17 @@ ether_output(struct ifnet *ifp, struct mbuf *m,
if ((aa = at_ifawithnet((struct sockaddr_at *)dst)) == NULL)
senderr(EHOSTUNREACH); /* XXX */
- if (!aarpresolve(ifp, m, (struct sockaddr_at *)dst, edst))
+ if (!aarpresolve(ifp, m, (struct sockaddr_at *)dst, edst)) {
+ ifa_free(&aa->aa_ifa);
return (0);
+ }
/*
* In the phase 2 case, need to prepend an mbuf for the llc header.
*/
if ( aa->aa_flags & AFA_PHASE2 ) {
struct llc llc;
+ ifa_free(&aa->aa_ifa);
M_PREPEND(m, LLC_SNAPFRAMELEN, M_DONTWAIT);
if (m == NULL)
senderr(ENOBUFS);
@@ -280,6 +283,7 @@ ether_output(struct ifnet *ifp, struct mbuf *m,
type = htons(m->m_pkthdr.len);
hlen = LLC_SNAPFRAMELEN + ETHER_HDR_LEN;
} else {
+ ifa_free(&aa->aa_ifa);
type = htons(ETHERTYPE_AT);
}
break;
diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c
index 61346cc..13fdd72 100644
--- a/sys/net/if_fddisubr.c
+++ b/sys/net/if_fddisubr.c
@@ -222,6 +222,7 @@ fddi_output(ifp, m, dst, ro)
} else {
type = htons(ETHERTYPE_AT);
}
+ ifa_free(&aa->aa_ifa);
break;
}
#endif /* NETATALK */
OpenPOWER on IntegriCloud