From patchwork Wed Nov 2 12:36:31 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cyrill Gorcunov X-Patchwork-Id: 690383 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3t87Q6011cz9vDr for ; Wed, 2 Nov 2016 23:56:14 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=e8Z0+zZi; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753651AbcKBM4J (ORCPT ); Wed, 2 Nov 2016 08:56:09 -0400 Received: from mail-lf0-f51.google.com ([209.85.215.51]:33576 "EHLO mail-lf0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753507AbcKBM4I (ORCPT ); Wed, 2 Nov 2016 08:56:08 -0400 Received: by mail-lf0-f51.google.com with SMTP id c13so11676189lfg.0 for ; Wed, 02 Nov 2016 05:56:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:user-agent:date:from:to:cc:subject:mime-version :content-disposition; bh=kf9TDGoIwFrAh1Z4zF+gC0tKZYpEWKuTyxk36NPvVxk=; b=e8Z0+zZithwiztTIl6YHn6Sobh0rVb8xyzgo/o7vc9gl1TdbVeI/jzgPPRwWu5QURC thfpRaA/31FxlzRFOWBNU5yTyVjUb+yqtRf/qNO/ysbTzAZ2hmsfh97TszDKJAFGIqzh IqGHh1qvlGCt4/Lllyp/VkDxYbw9gewWOKOzVHYGyX7ko4O2fQCUGo/srjUO1plPIB9N apkjYYnECSj1HjUXAXC9DoQXjyyrUPlEofBovxG7fzCoNY1NAxJsLEEyOunaaLjeponV cE3p+z1+vtGYQKGs4HuDNNTK/wLCe5V4dZbml2T3XQ8Gf0laeF8dcQQGk1CoyMWV6Gq1 wE9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:message-id:user-agent:date:from:to:cc :subject:mime-version:content-disposition; bh=kf9TDGoIwFrAh1Z4zF+gC0tKZYpEWKuTyxk36NPvVxk=; b=nI6eXmGRGFI1qSa8X9UXew1dkhRmqycvLYhortjBfzTrcZrZ7AGUW/hBH/wq4pDU/v o5GdwOs21hnERpQlSreQ+0teltQZXfoDFyXskpdOps5+MdeojY6e0fhcMKnwlvLfc+3I +ILjRAN5W2G7lvPVC0M30jJxdlqxRJYICvjQ2x+3nGSxgu2pdwiPb7TGBgJ51b+Y75Fy CB5C4EwbeOI356ood2y4F3T7jRrDOmRk3Z+nJEQr1C4RgtVydb7ZiLOnLLDhnxz37Wpw BuSGKdRDW37vz1U3qBb6K4X3jKOyMmRyUapOd/mLOuywr85UoI1/rKYUhfh1E8V2eyOb hxAQ== X-Gm-Message-State: ABUngvf15GksAzTb2JQ9D4c+unk/6pBIR+Pfko73WPPmOe2l4ILik97XeZWv34NdMZYUmQ== X-Received: by 10.25.33.79 with SMTP id h76mr1914938lfh.133.1478091366508; Wed, 02 Nov 2016 05:56:06 -0700 (PDT) Received: from uranus.localdomain ([5.18.178.32]) by smtp.gmail.com with ESMTPSA id u74sm429481lfi.9.2016.11.02.05.56.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 02 Nov 2016 05:56:04 -0700 (PDT) Received: by uranus.localdomain (Postfix, from userid 1000) id 4F6C42104F; Wed, 2 Nov 2016 15:54:54 +0300 (MSK) Message-Id: <20161102125454.694582296@openvz.org> User-Agent: quilt/0.64 Date: Wed, 02 Nov 2016 15:36:31 +0300 From: Cyrill Gorcunov To: netdev@vger.kernel.org Cc: Eric Dumazet , "David S. Miller" , David Ahern , Andrey Vagin , Stephen Hemminger , Cyrill Gorcunov Subject: [patch net-next 1/2] [PATCH] net: ip, raw_diag -- Fix socket leaking for destroy request MIME-Version: 1.0 Content-Disposition: inline; filename=inet-diag-raw-add-sock_put Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In raw_diag_destroy the helper raw_sock_get returns with sock_hold call, so we have to put it then. CC: David S. Miller CC: Eric Dumazet CC: David Ahern CC: Andrey Vagin CC: Stephen Hemminger Signed-off-by: Cyrill Gorcunov Acked-by: David Ahern --- net/ipv4/raw_diag.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-ml.git/net/ipv4/raw_diag.c =================================================================== --- linux-ml.git.orig/net/ipv4/raw_diag.c +++ linux-ml.git/net/ipv4/raw_diag.c @@ -205,11 +205,14 @@ static int raw_diag_destroy(struct sk_bu { struct net *net = sock_net(in_skb->sk); struct sock *sk; + int err; sk = raw_sock_get(net, r); if (IS_ERR(sk)) return PTR_ERR(sk); - return sock_diag_destroy(sk, ECONNABORTED); + err = sock_diag_destroy(sk, ECONNABORTED); + sock_put(sk); + return err; } #endif