From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56CC6C169C4 for ; Wed, 6 Feb 2019 12:51:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2713F20B1F for ; Wed, 6 Feb 2019 12:51:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JMl89dfl" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730091AbfBFMvm (ORCPT ); Wed, 6 Feb 2019 07:51:42 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:39848 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726416AbfBFMvl (ORCPT ); Wed, 6 Feb 2019 07:51:41 -0500 Received: by mail-pg1-f196.google.com with SMTP id r11so2846540pgp.6 for ; Wed, 06 Feb 2019 04:51:41 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=UOjIbiI/kMg0qNzu1suMVTc8ERivm8tMPEShpWdHiP4=; b=JMl89dfl+es0i/MgAvnqnaIsOroYbceVz7J5mTm2HvUI8pT4SZgOVpAVv2Om7HI10B Ib8sfuxFPyZs1HMdJ4LlDxoX5cAYSAIMX3H8gocqc3JE3c8UxgoqxlhFYTZsn8HBsijG lE8car2DCuoCY+1eaRGxn9kYrYI5qqhcqMEL05DL8lDoiX+gGtsEP94+CA6lNHzk28AT SLmMA+csopE23qOMvJ6vow2Sy0o91LB7V+cqwyXmVCykhQ/va8kvj841x9WFi/jBZElT dkIN6ttZ1KByKLEzEaz6fuVZbuCmVbZPHtLM8Uobrr1Vd8UqY2Rgfy2NLcLcUKSgkTvp LvoA== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=UOjIbiI/kMg0qNzu1suMVTc8ERivm8tMPEShpWdHiP4=; b=XgyDC7m8w+Vyb57fiTLaSxGJ4ALmDA1c4GR1NWsW60KsdsqWoevmFhFHc9TWYqcQNO iLS1Bkm0HmUZ3MqFX+kBWqRiGTEJMPTI3fXWbjpKD1OnYiCyTRUc1cfzKeMtwDj/q3Zg ZVR0/7k0xQhXwSo1X8KpKrEx+i6MNt05pYznjSI3yGJOlwh1IGQxj+XbiZZ21COTVRp4 ZWIwmv9UVtqyeDxoUPbD11CncysE+an+/1dy5G+Bwxx3/DpgvIWDv+YbAh96wF4pWWLM GswzcVKneT+QbECaVRZWLmQ8QVcg4GmE96a11vo6ZU1wSIDJLb0xlmHXXbJqlU9TyTPR myiA== X-Gm-Message-State: AHQUAuYYG7DBf+szGlkYpObcrVCeMrcN38cA6ONZtB52WzqmqYNzFnre 7javWOlx7rgh4VHQ/tYcaQ1MixCs X-Google-Smtp-Source: AHgI3IYnr0tkrvjGQkHcBvdPwze495Lec++nwyC1HuQTwCM35VEij/rCxL9MOqsmSzESOLW4uNOuIA== X-Received: by 2002:a63:134f:: with SMTP id 15mr9360540pgt.19.1549457500011; Wed, 06 Feb 2019 04:51:40 -0800 (PST) Received: from dhcp-12-139.nay.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id 62sm8023665pgc.61.2019.02.06.04.51.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 06 Feb 2019 04:51:39 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Stefano Brivio , David Miller , Hangbin Liu Subject: [PATCH net 1/2] geneve: should not call rt6_lookup() when ipv6 was disabled Date: Wed, 6 Feb 2019 20:51:10 +0800 Message-Id: <20190206125111.5286-2-liuhangbin@gmail.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190206125111.5286-1-liuhangbin@gmail.com> References: <20190206125111.5286-1-liuhangbin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When we add a new GENEVE device with IPv6 remote, checking only for IS_ENABLED(CONFIG_IPV6) is not enough as we may disable IPv6 in kernel cmd(ipv6.disable=1), which will cause a NULL pointer dereference. Reported-by: Jianlin Shi Signed-off-by: Hangbin Liu --- drivers/net/geneve.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 58bbba8582b0..0658715581e3 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c @@ -1512,6 +1512,10 @@ static void geneve_link_config(struct net_device *dev, } #if IS_ENABLED(CONFIG_IPV6) case AF_INET6: { + struct inet6_dev *idev = in6_dev_get(dev); + if (!idev) + break; + struct rt6_info *rt = rt6_lookup(geneve->net, &info->key.u.ipv6.dst, NULL, 0, NULL, 0); @@ -1519,6 +1523,8 @@ static void geneve_link_config(struct net_device *dev, if (rt && rt->dst.dev) ldev_mtu = rt->dst.dev->mtu - GENEVE_IPV6_HLEN; ip6_rt_put(rt); + + in6_dev_put(idev); break; } #endif -- 2.19.2