From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756269AbcBWWH3 (ORCPT ); Tue, 23 Feb 2016 17:07:29 -0500 Received: from tiger.mobileactivedefense.com ([217.174.251.109]:43176 "EHLO tiger.mobileactivedefense.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756189AbcBWWHZ (ORCPT ); Tue, 23 Feb 2016 17:07:25 -0500 From: Rainer Weikusat To: Ben Hutchings Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, akpm@linux-foundation.org, "Rainer Weikusat" , "David S. Miller" , "Eric Dumazet" , "Dmitry Vyukov" Subject: Re: [PATCH 3.2 08/67] af_unix: fix struct pid memory leak In-Reply-To: (Ben Hutchings's message of "Tue, 23 Feb 2016 21:42:03 +0000") References: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) Date: Tue, 23 Feb 2016 22:07:06 +0000 Message-ID: <87povnaxo5.fsf@doppelsaurus.mobileactivedefense.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (tiger.mobileactivedefense.com [217.174.251.109]); Tue, 23 Feb 2016 22:07:13 +0000 (GMT) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ben Hutchings writes: > 3.2.78-rc1 review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Eric Dumazet > > commit fa0dc04df259ba2df3ce1920e9690c7842f8fa4b upstream. [...] > Fixes: b3ca9b02b007 ("net: fix multithreaded signal handling in unix recv routines") [...] > net/unix/af_unix.c | 1 + > 1 file changed, 1 insertion(+) > > --- a/net/unix/af_unix.c > +++ b/net/unix/af_unix.c > @@ -2100,6 +2100,7 @@ static int unix_stream_recvmsg(struct ki > > if (signal_pending(current)) { > err = sock_intr_errno(timeo); > + scm_destroy(siocb->scm); > goto out; > } JFTR: The commit mentioned in the fixes is (just the relevant part) @@ -1895,11 +1903,12 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock, timeo = unix_stream_data_wait(sk, timeo); - if (signal_pending(current)) { + if (signal_pending(current) + || mutex_lock_interruptible(&u->readlock)) { err = sock_intr_errno(timeo); goto out; } - mutex_lock(&u->readlock); + continue; unlock: unix_state_unlock(sk); This not only didn't add the block triggering the error but this change isn't even part of the (version of) the function which was fixed anymore.