summaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorJun-ichiro itojun Hagino <itojun@cvs.openbsd.org>2002-06-10 09:13:27 +0000
committerJun-ichiro itojun Hagino <itojun@cvs.openbsd.org>2002-06-10 09:13:27 +0000
commit170804640c53feb6b60b14bae8a8633e8b949911 (patch)
treebc1a1a9dca7baee7582287f85ddeb282883b0e5f /sys/netinet
parent8e7db6a9c6de7e28aaf5ac6d45833bf594f45902 (diff)
prevent mbuf leak on icmp_do_error() failure.
NOTE: under 4.4BSD mbuf coding discipline, once you pass mbuf to a function like f(m), you no longer have ownership of the mbuf. the mbuf will always be freed by the called function f(). by keeping the programming rule you have less chance of memory leak.
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/ip_icmp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c
index f9625017fda..af50040940a 100644
--- a/sys/netinet/ip_icmp.c
+++ b/sys/netinet/ip_icmp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip_icmp.c,v 1.51 2002/06/09 16:26:10 itojun Exp $ */
+/* $OpenBSD: ip_icmp.c,v 1.52 2002/06/10 09:13:26 itojun Exp $ */
/* $NetBSD: ip_icmp.c,v 1.19 1996/02/13 23:42:22 christos Exp $ */
/*
@@ -267,6 +267,7 @@ icmp_do_error(n, type, code, dest, destifp)
m_tag_prepend(m, mtag);
}
+ m_freem(n);
return (m);
freeit:
@@ -292,7 +293,6 @@ icmp_error(n, type, code, dest, destifp)
m = icmp_do_error(n, type, code, dest, destifp);
if (m != NULL)
icmp_reflect(m);
- m_freem(n);
}
static struct sockaddr_in icmpsrc = { sizeof (struct sockaddr_in), AF_INET };