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.

Reply via email to