Skip site navigation (1)Skip section navigation (2)
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>