Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3033635imu; Sun, 9 Dec 2018 15:38:37 -0800 (PST) X-Google-Smtp-Source: AFSGD/UOQZu2MMgRvrScgo6lQJG9gGgU4UmhEbNN80qqrSfr3qW8CUlkJOaleIo3dkBn7ZaQmnEW X-Received: by 2002:a63:68c4:: with SMTP id d187mr8894936pgc.11.1544398717597; Sun, 09 Dec 2018 15:38:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544398717; cv=none; d=google.com; s=arc-20160816; b=YhOzvFsAhGgDQqMNlYDth6/XSr7BBlC2LlziAV40PerWmZ3vQJkoYu7WrTa2SPazCf Znd4iCA7oSe57xeOzqQmaXsMfj2Vw/4IvpuKXO0ChUVPxO5Wv4bCq9EKcRkvsM1bQD2x kf6a5ABHj7EngdBx2VrhNnzkj26kPFCrxp8YjwBM875vb3SApCJQb9VWqk+xcV3w14ib O9mQbf0CIXbeqQgQ9xD3e/0GjkgpEe6d3Sd6B4Tu26M4Hu3aOiPCLtGC3ZrL3VF+oF0t IxTP+zqu6JuQ8Dgw/bqNZEm7tEZUXLlPPrY1omuEcxMan/L4HjD9kk2KtZSTE1IOcoJ0 bkAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=bRFmBR76TVcmOUYJFAWCEYLHNw8bSd3Jfju6go2yTgk=; b=NJpP7bKrGDF61X6267Mi9kBYK0wOVwEYhKeEPpvznBxwkHgFo/fJXabwdsuOGAxrig Yf2TsJyxqZHry1zipKYdK1s3b7OQdJ8Y3bhPCYyxvV2j2mf3/q5IYqcowRUMUTQSGIr7 gHvJ807Q1Nv8/QVn62lu2UlJEUDizD3JHABp6U5D5hY6VLj3ytuL1ew/vDuaJfyXFENP AW7RWbPaJ+lIy3I+R0MjonR46++YG0EP720HLWS2/WKH0Fir/noF3vTlz861cIualC9t 5IwkY2OeS1M0u0h92V1JpkXuWlUNB544pg+yTloPs9ZR4iBczxuLCy3tJKsO+lGFlL4G yiSg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o68si10282267pfo.140.2018.12.09.15.38.21; Sun, 09 Dec 2018 15:38:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728706AbeLIW1A (ORCPT + 99 others); Sun, 9 Dec 2018 17:27:00 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:34702 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726392AbeLIVzM (ORCPT ); Sun, 9 Dec 2018 16:55:12 -0500 Received: from pub.yeoldevic.com ([81.174.156.145] helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gW72b-0002ik-Ka; Sun, 09 Dec 2018 21:55:09 +0000 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1gW72Y-0003EG-TA; Sun, 09 Dec 2018 21:55:06 +0000 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Haishuang Yan" , "Jiri Benc" , "David S. Miller" Date: Sun, 09 Dec 2018 21:50:33 +0000 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 027/328] vxlan: fix a potential issue when create a new vxlan fdb entry. In-Reply-To: X-SA-Exim-Connect-IP: 81.174.156.145 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.62-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Haishuang Yan commit 17b463654f41f0aa334efd5a6efeab8a6e9496f7 upstream. vxlan_fdb_append may return error, so add the proper check, otherwise it will cause memory leak. Signed-off-by: Haishuang Yan Changes in v2: - Unnecessary to initialize rc to zero. Acked-by: Jiri Benc Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings --- drivers/net/vxlan.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -695,6 +695,7 @@ static int vxlan_fdb_create(struct vxlan struct vxlan_rdst *rd = NULL; struct vxlan_fdb *f; int notify = 0; + int rc; f = __vxlan_find_mac(vxlan, mac); if (f) { @@ -729,8 +730,7 @@ static int vxlan_fdb_create(struct vxlan if ((flags & NLM_F_APPEND) && (is_multicast_ether_addr(f->eth_addr) || is_zero_ether_addr(f->eth_addr))) { - int rc = vxlan_fdb_append(f, ip, port, vni, ifindex, - &rd); + rc = vxlan_fdb_append(f, ip, port, vni, ifindex, &rd); if (rc < 0) return rc; @@ -760,7 +760,11 @@ static int vxlan_fdb_create(struct vxlan INIT_LIST_HEAD(&f->remotes); memcpy(f->eth_addr, mac, ETH_ALEN); - vxlan_fdb_append(f, ip, port, vni, ifindex, &rd); + rc = vxlan_fdb_append(f, ip, port, vni, ifindex, &rd); + if (rc < 0) { + kfree(f); + return rc; + } ++vxlan->addrcnt; hlist_add_head_rcu(&f->hlist,