On 4/22/19 9:52 AM, Enji Cooper wrote:

On Apr 22, 2019, at 12:27 AM, Hans Petter Selasky <hsela...@freebsd.org> wrote:

Author: hselasky
Date: Mon Apr 22 07:27:24 2019
New Revision: 346530
URL: https://svnweb.freebsd.org/changeset/base/346530

Log:
  Fix panic in network stack due to memory use after free in relation to
  fragmented packets.

  When sending IPv4 and IPv6 fragmented packets and a fragment is lost,
  the mbuf making up the fragment will remain in the temporary hashed
  fragment list for a while. If the network interface departs before the
  so-called slow timeout clears the packet, the fragment causes a panic
  when the timeout kicks in due to accessing a freed network interface
  structure.

  Make sure that when a network device is departing, all hashed IPv4 and
  IPv6 fragments belonging to it, get freed.

  Backtrace:
  panic()
  icmp6_reflect()

  hlim = ND_IFINFO(m->m_pkthdr.rcvif)->chlim;
  ^^^^ rcvif->if_afdata[AF_INET6] is NULL.

  icmp6_error()
  frag6_freef()
  frag6_slowtimo()
  pfslowtimo()
  softclock_call_cc()
  softclock()
  ithread_loop()

  Differential Revision:        https://reviews.freebsd.org/D19622
  Reviewed by:          bz (network), adrian
  MFC after:            1 week
  Sponsored by:         Mellanox Technologies

This commit broke the build on mips, etc:

07:36:06
--- ip_reass.o ---

07:36:06
/usr/src/sys/netinet/ip_reass.c:641: error: expected ')' before '(' token

07:36:06 *** [ip_reass.o] Error code 1

EVENTHANDLER_DEFINE looks like it doesn’t work with gcc?

I'm looking into it.

Thank you!

--HPS



_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to