From patchwork Tue Jan 9 21:40:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 857790 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jG0Vx86c"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zGQYh5bG7z9s83 for ; Wed, 10 Jan 2018 08:40:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753368AbeAIVky (ORCPT ); Tue, 9 Jan 2018 16:40:54 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:33184 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753343AbeAIVkw (ORCPT ); Tue, 9 Jan 2018 16:40:52 -0500 Received: by mail-pg0-f65.google.com with SMTP id i196so8896045pgd.0 for ; Tue, 09 Jan 2018 13:40:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=C+SJCJMUrifBLCG94+UmemS7r4bxMFX1qkyw9CylOeo=; b=jG0Vx86cN8Pi1H0nV1Q93eKJvIdD5Sip82yWAEXQMFGNowAsDURaTPc3sCcUBZrmSM LVs28nY3CnifTWpZJMK4wcUJplXfyLBhYCLwoLYw/yzWlEW6kzPO9IY1cJRfS4oYZvlo ZsRBJbW4Q4a5XslgkFY28QqM7TtplTk0bSRp2lfaRQbZt0zwSEqtmW1fAKZfmUhbgQ6u 0C6Oq8fM43EIH3CX+AROQBu1EBe4OSkAomRjGBVItfBLcLkEVMUCT0R0rOj58J0EWwOf pw9YIAY3Aq+NOZxkyAC39aaDl0MxVEuBM9h9GMU5JjY2afVoZSLcDfVPrQcUrlALfBFA Mncg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=C+SJCJMUrifBLCG94+UmemS7r4bxMFX1qkyw9CylOeo=; b=V357+Ezmrsc3pzCADcIYLvhDhbtweHLxcvKIPgX9OFL7K4Eb5UJlPa0DkyaIXUIgLm BVNstlF2afP+fPIpzT3UOOB9B5QQ4YNGbSDSbLNZ0d9A8gxv9EZePRMrKC8V/UKgIeSP Nje2nyJi+5FJiT4K2q2C+smU/ieN4XO/S9A6jWRRfroaaXv9/H8r2u0nLW+cLmR8CxWV nDfkfQ78BxqEElhZGnM59iGNTmI95WiBmRSjLkBBeGIAMX1PQfAIINNyytdrF2QDr31A s/YTt3hqNZxgDpNFpneAQyBUab/bC8pLszlUESQronagweE9kmaBmpxPxaoK4RZ+B6b+ IDeA== X-Gm-Message-State: AKGB3mLMCAcX3L8MBJoOc21tPeaUwdlCyS5t3LWE8Kv51inEFYj2OkuT SK/HNC2186DewIU95u+shlFm7hx2 X-Google-Smtp-Source: ACJfBovWajUhUh66oeTnZwUKF0YsYuJZ1Y6zZeQ3ZKFSlF6VKoII9GNi4kVJJv6ZKdEDVkSCAPSMcQ== X-Received: by 10.99.64.135 with SMTP id n129mr13135976pga.93.1515534052209; Tue, 09 Jan 2018 13:40:52 -0800 (PST) Received: from tw-172-25-30-113.office.twttr.net ([8.25.197.25]) by smtp.gmail.com with ESMTPSA id l80sm31444810pfk.67.2018.01.09.13.40.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 09 Jan 2018 13:40:51 -0800 (PST) From: Cong Wang To: netdev@vger.kernel.org Cc: dvyukov@google.com, Cong Wang , Vlad Yasevich , Ben Hutchings Subject: [Patch net] 8021q: fix a memory leak for VLAN 0 device Date: Tue, 9 Jan 2018 13:40:41 -0800 Message-Id: <20180109214041.26842-1-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.9.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org A vlan device with vid 0 is allow to creat by not able to be fully cleaned up by unregister_vlan_dev() which checks for vlan_id!=0. Also, VLAN 0 is probably not a valid number and it is kinda "reserved" for HW accelerating devices, but it is probably too late to reject it from creation even if makes sense. Instead, just remove the check in unregister_vlan_dev(). Reported-by: Dmitry Vyukov Fixes: ad1afb003939 ("vlan_dev: VLAN 0 should be treated as "no vlan tag" (802.1p packet)") Cc: Vlad Yasevich Cc: Ben Hutchings Signed-off-by: Cong Wang --- net/8021q/vlan.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 8dfdd94e430f..bad01b14a4ad 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -111,12 +111,7 @@ void unregister_vlan_dev(struct net_device *dev, struct list_head *head) vlan_gvrp_uninit_applicant(real_dev); } - /* Take it out of our own structures, but be sure to interlock with - * HW accelerating devices or SW vlan input packet processing if - * VLAN is not 0 (leave it there for 802.1p). - */ - if (vlan_id) - vlan_vid_del(real_dev, vlan->vlan_proto, vlan_id); + vlan_vid_del(real_dev, vlan->vlan_proto, vlan_id); /* Get rid of the vlan's reference to real_dev */ dev_put(real_dev);