Date: Mon, 23 Feb 2015 21:42:43 +0300 From: Gleb Smirnoff <glebius@FreeBSD.org> To: "Andrey V. Elsukov" <ae@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r279206 - head/sys/kern Message-ID: <20150223184243.GF15484@FreeBSD.org> In-Reply-To: <201502231341.t1NDfaPh029088@svn.freebsd.org> References: <201502231341.t1NDfaPh029088@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 23, 2015 at 01:41:36PM +0000, Andrey V. Elsukov wrote: A> Author: ae A> Date: Mon Feb 23 13:41:35 2015 A> New Revision: 279206 A> URL: https://svnweb.freebsd.org/changeset/base/279206 A> A> Log: A> In some cases soreceive_dgram() can return no data, but has control A> message. This can happen when application is sending packets too big A> for the path MTU and recvmsg() will return zero (indicating no data) A> but there will be a cmsghdr with cmsg_type set to IPV6_PATHMTU. A> Remove KASSERT() which does NULL pointer dereference in such case. A> Also call m_freem() only when m isn't NULL. A> A> PR: 197882 A> MFC after: 1 week A> Sponsored by: Yandex LLC All this code is so entangled, due to historical decision to have code to handle dgram and stream sockets, data messages and control messages. Now that dgram and stream are almost[1] split, splitting data and control would finish un-entangling. This would require introducing extra pr_ methods, not a big deal. [1] Struct sockbuf is still the same. -- Totus tuus, Glebius.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150223184243.GF15484>