public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Rainer Weikusat <rweikusat@mobileactivedefense•com>
To: Philipp Hahn <pmhahn@pmhahn•de>
Cc: Ben Hutchings <ben@decadent•org.uk>,
	Hannes Frederic Sowa <hannes@stressinduktion•org>,
	Sasha Levin <sasha.levin@oracle•com>,
	"David S. Miller" <davem@davemloft•net>,
	linux-kernel@vger•kernel.org, Karolin Seeger <kseeger@samba•org>,
	Jason Baron <jbaron@akamai•com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation•org>,
	Arvid Requate <requate@univention•de>,
	Stefan Gohmann <gohmann@univention•de>,
	netdev@vger•kernel.org
Subject: Re: [PATCH net] af_unix: Guard against other == sk in unix_dgram_sendmsg
Date: Fri, 12 Feb 2016 13:25:15 +0000	[thread overview]
Message-ID: <8760xuvz5w.fsf@doppelsaurus.mobileactivedefense.com> (raw)
In-Reply-To: <56BDA3A8.6070807@pmhahn.de> (Philipp Hahn's message of "Fri, 12 Feb 2016 10:19:36 +0100")

Philipp Hahn <pmhahn@pmhahn•de> writes:

> Hello Rainer,
>
> Am 11.02.2016 um 20:37 schrieb Rainer Weikusat:
>> The unix_dgram_sendmsg routine use the following test
>> 
>> if (unlikely(unix_peer(other) != sk && unix_recvq_full(other))) {

[...]

>> This isn't correct as the> specified address could have been bound to
>> the sending socket itself

[...]

> After applying that patch at least my machine running the samba test no
> longer crashes.

There's a possible gotcha in there: Send-to-self used to be limited by
the queue limit. But the rationale for that (IIRC) was that someone
could keep using newly created sockets to queue ever more data to a
single, unrelated receiver. I don't think this should apply when
receiving and sending sockets are identical. But that's just my
opinion. The other option would be to avoid the unix_state_double_lock
for sk == other. I'd be willing to change this accordingly if someone
thinks the queue limit should apply to send-to-self.

  reply	other threads:[~2016-02-12 13:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <56B4BF9D.9070609@pmhahn.de>
     [not found] ` <56BC90E7.7040007@pmhahn.de>
     [not found]   ` <87fuwzkzr5.fsf@doppelsaurus.mobileactivedefense.com>
     [not found]     ` <1455210224.2801.21.camel@decadent.org.uk>
     [not found]       ` <87r3gjjgbu.fsf@doppelsaurus.mobileactivedefense.com>
     [not found]         ` <87egcjcd5j.fsf@doppelsaurus.mobileactivedefense.com>
2016-02-11 19:37           ` [PATCH net] af_unix: Guard against other == sk in unix_dgram_sendmsg Rainer Weikusat
2016-02-12  9:19             ` Philipp Hahn
2016-02-12 13:25               ` Rainer Weikusat [this message]
2016-02-12 19:54                 ` Ben Hutchings
2016-02-12 20:17                   ` Rainer Weikusat
2016-02-12 20:47                     ` Ben Hutchings
2016-02-12 20:59                       ` Rainer Weikusat
2016-02-16 17:54             ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8760xuvz5w.fsf@doppelsaurus.mobileactivedefense.com \
    --to=rweikusat@mobileactivedefense$(echo .)com \
    --cc=ben@decadent$(echo .)org.uk \
    --cc=davem@davemloft$(echo .)net \
    --cc=gohmann@univention$(echo .)de \
    --cc=gregkh@linuxfoundation$(echo .)org \
    --cc=hannes@stressinduktion$(echo .)org \
    --cc=jbaron@akamai$(echo .)com \
    --cc=kseeger@samba$(echo .)org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=pmhahn@pmhahn$(echo .)de \
    --cc=requate@univention$(echo .)de \
    --cc=sasha.levin@oracle$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox