From patchwork Fri Sep 20 15:52:18 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: holger@eitzenberger.org X-Patchwork-Id: 276522 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 1CD412C0173 for ; Sat, 21 Sep 2013 01:58:25 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752282Ab3ITP6X (ORCPT ); Fri, 20 Sep 2013 11:58:23 -0400 Received: from moutng.kundenserver.de ([212.227.126.171]:62775 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752190Ab3ITP6W (ORCPT ); Fri, 20 Sep 2013 11:58:22 -0400 Received: from kruemel.eitzenberger.org (p54AD46FA.dip0.t-ipconnect.de [84.173.70.250]) by mrelayeu.kundenserver.de (node=mreu4) with ESMTP (Nemesis) id 0M2TGj-1WD5v406FB-00sOez; Fri, 20 Sep 2013 17:58:19 +0200 Received: from holger by kruemel.eitzenberger.org with local (Exim 4.76) (envelope-from ) id 1VN361-0004nR-W2; Fri, 20 Sep 2013 17:58:18 +0200 Message-Id: <20130920155817.660882995@eitzenberger.org> User-Agent: quilt/0.50-1 Date: Fri, 20 Sep 2013 17:52:18 +0200 From: Holger Eitzenberger To: Cc: , Holger Eitzenberger Subject: [FIX 1/1] sip: add missing RCU reader lock References: <20130920155217.281613399@eitzenberger.org> Content-Disposition: inline; filename=sip-add-missing-RCU-reader-lock.diff X-Provags-ID: V02:K0:/qVh4MkG6in7Th5iiaycscSL0FRiN95YPeXo3qSqmSi cSf+vQ91hwkDsfnALeLhrzis4Ja+sthdX8/a6Y57emgTj5G6qo fvIRhDPSndv8Nj/TvjoYkG94djEABGtvdDtfHbF0VcI5etVl1u SVUJiK+TilsRi3Of44xRJ3OZ8QevcD4X3udZquVxWeCmx3YibX 5u0vskdoQltV0l27UQU3FKtMCFfdUB1qfDaBKEMG3DoHddRf1y lQKk7l66nWsiB2WuNhKNPFUj6MFvG8pjQnypf+i4LKkkMfw65s WZ/QGVCCOwkaPTeeWXHaq7eVTBIZZyfzhTyKMGl30G5VzTcbFq w5E/tI0odHBozKOB5F6cE5OfAygiG+5MRZBU1AHQYTM2KfOHn3 ffFnM4jcZzcuw== Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org Currently set_expected_rtp_rtcp() in the SIP helper uses rcu_dereference() two times to access two different NAT hook functions. However, only the first one is protected properly by the RCU reader lock, but the 2nd isn't. I chose to not just extend the first RCU protected area but putting the rcu_read_unlock() down, because there is a 'return' in between. Signed-off-by: Holger Eitzenberger --- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Index: net-next/net/netfilter/nf_conntrack_sip.c =================================================================== --- net-next.orig/net/netfilter/nf_conntrack_sip.c +++ net-next/net/netfilter/nf_conntrack_sip.c @@ -983,6 +983,7 @@ static int set_expected_rtp_rtcp(struct if (skip_expect) return NF_ACCEPT; + rcu_read_lock(); rtp_exp = nf_ct_expect_alloc(ct); if (rtp_exp == NULL) goto err1; @@ -1012,6 +1013,7 @@ static int set_expected_rtp_rtcp(struct err2: nf_ct_expect_put(rtp_exp); err1: + rcu_read_unlock(); return ret; }