lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 18 Jun 2007 12:47:17 +0200
From:	Miklos Szeredi <miklos@...redi.hu>
To:	tgraf@...g.ch
CC:	davem@...emloft.net, akpm@...ux-foundation.org,
	viro@....linux.org.uk, alan@...rguk.ukuu.org.uk,
	netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] fix race in AF_UNIX

> * Thomas Graf <tgraf@...g.ch> 2007-06-18 12:32
> > * Miklos Szeredi <miklos@...redi.hu> 2007-06-18 11:44
> > > Garbage collection only ever happens, if the app is sending AF_UNIX
> > > sockets over AF_UNIX sockets.  Which is a rather rare case.  And which
> > > is basically why this bug went unnoticed for so long.
> > > 
> > > So my second patch only affects the performance of _exactly_ those
> > > apps which might well be bitten by the bug itself.
> > 
> > That's not entirely the truth. It affects all applications using
> > AF_UNIX sockets while file descriptors are being transfered. I
> > agree that the performance impact is not severe on most systems
> > but if file descriptors are being transfered continously by just
> > a single application it can become rather severe.
> 
> Also think of the scenario where an application, deliberately or not,
> begins a file descriptor tranfser using sendmsg() and the receiving
> part never invokes recvmsg() to decrement the inflight counters
> again. Every unix socket that gets closed would result in a gc call
> locking all sockets.

And if some of the sent files were unix sockets, rightly so, since the
sent sockets might need to be garbage collected.

And BTW the whole gc is done with the unix_table_lock held, so it will
stop some socket operations anyway.  The fact that it needs to stop
some more operations is a necessary thing.  But we are talking about a
_spinlocked_ region, which for zillions of sockets might run for a
long time, but it's not as if it's really going to affect performance
in real cases.

Miklos
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists