Date: Sat, 7 Jul 2001 15:01:29 -0400 From: "Alexander N. Kabaev" <ak03@gte.com> To: freebsd-current@FreeBSD.org Cc: freebsd-net@FreeBSD.org Subject: This can't be right (bug in ip6_output.c) Message-ID: <20010707150129.A910@kanpc.gte.com>
next in thread | raw e-mail | index | archive | help
The following code in netinet6/ip6_output.c:1673 just cannot be right: case IPV6_FW_GET: { struct mbuf *m; struct mbuf **mp = &m; if (ip6_fw_ctl_ptr == NULL) { if (m) (void)m_free(m); return EINVAL; } error = (*ip6_fw_ctl_ptr)(optname, mp); if (error == 0) error = soopt_mcopyout(sopt, m); /* XXX */ if (error == 0 && m) m_freem(m); } break; The m_free call in the ip6_fw_ctl_ptr == NULL case apparently tries to free uninitialized mbuf. -- Alexander Kabaev P.S. Below is the patch to remove bogus m_free call: Index: ip6_output.c =================================================================== RCS file: /usr/ncvs/src/sys/netinet6/ip6_output.c,v retrieving revision 1.28 diff -u -r1.28 ip6_output.c --- ip6_output.c 2001/06/24 20:25:38 1.28 +++ ip6_output.c 2001/07/07 18:57:51 @@ -1668,11 +1668,7 @@ struct mbuf **mp = &m; if (ip6_fw_ctl_ptr == NULL) - { - if (m) - (void)m_free(m); return EINVAL; - } error = (*ip6_fw_ctl_ptr)(optname, mp); if (error == 0) error = soopt_mcopyout(sopt, m); /* XXX */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010707150129.A910>