Date: Sun, 19 Aug 2012 11:35:25 +0300 From: Mikolaj Golub <trociny@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r239383 - head/sys/netinet6 Message-ID: <20120819083346.GA3758@gmail.com> In-Reply-To: <201208190816.q7J8GD1M050056@svn.freebsd.org> References: <201208190816.q7J8GD1M050056@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Aug 19, 2012 at 08:16:13AM +0000, Mikolaj Golub wrote: > Author: trociny > Date: Sun Aug 19 08:16:13 2012 > New Revision: 239383 > URL: http://svn.freebsd.org/changeset/base/239383 > > Log: > In ip6_ctloutput() guard inp_flags modifications with INP_WLOCK. > The issue this commit fixes was reproduced using this simple program: http://people.freebsd.org/~trociny/test_IPPROTO_IPV6.c When two threads modified IPPROTO_IPV6 options simultaneously (each thread a different option but both options are in inp_flags, like IPV6_V6ONLY and IPV6_PORTRANGE) the result could be wrong due to the interference. I think that modification of ip6_pktopts should be guarded with the lock too. I have a patch for this: http://people.freebsd.org/~trociny/ip6_output.c.ip6_pktopts.1.patch Unfortunately, I don't know how to test this. -- Mikolaj Golub
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120819083346.GA3758>