On 2017 May 22 (Mon) at 15:54:38 +0200 (+0200), Alexander Bluhm wrote:
:On Mon, May 22, 2017 at 11:33:08AM +0000, Gerlach, Hendrik wrote:
:> A possible fix maybe would calling m_free(opts) (if opts != NULL) after
calling icmp_send()
:
:As the options are not allocated in icmp_send() I think it is better
:to free them in icmp_input_if() after a successful call to
:icmp_reflect().
:
:ok?
:
OK
:bluhm
:
:Index: netinet/ip_icmp.c
:===================================================================
:RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_icmp.c,v
:retrieving revision 1.167
:diff -u -p -r1.167 ip_icmp.c
:--- netinet/ip_icmp.c 4 May 2017 17:58:46 -0000 1.167
:+++ netinet/ip_icmp.c 22 May 2017 13:25:37 -0000
:@@ -591,8 +591,10 @@ reflect:
:
: icmpstat_inc(icps_reflect);
: icmpstat_inc(icps_outhist + icp->icmp_type);
:- if (!icmp_reflect(m, &opts, NULL))
:+ if (!icmp_reflect(m, &opts, NULL)) {
: icmp_send(m, opts);
:+ m_free(opts);
:+ }
: return IPPROTO_DONE;
:
: case ICMP_REDIRECT:
:
--
If you can read this, you're too close.