Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp6026783ybc; Wed, 27 Nov 2019 13:38:51 -0800 (PST) X-Google-Smtp-Source: APXvYqzrxfJI8rMpWu15b3ARTRkvOI/xkrD/eO1GP6RWcfVu5ivc/ZjdRhkBrxaOJSvpxHzgEHhV X-Received: by 2002:aa7:cc0f:: with SMTP id q15mr33996911edt.71.1574890731265; Wed, 27 Nov 2019 13:38:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574890731; cv=none; d=google.com; s=arc-20160816; b=wgnU1GlJ6URG59bsir4CsWA+igBn0HdHnmDqytkrwVAx2/A1TOX8RnUWN4CN802ACG G9Y5+guXKj8oUMhIPLX87rfuDi/XSDmJfYIMi3IWWhBMu5IFXTFEUn7DOSywThQLp1DW TTEIvis+JoZXzFovGfBCLCsT35HPj5rZJgG5pBYhhpLky2flQSidqc+P3BUMbbKIqbwE rkJU4SJ7/rC5yUlBE+nwzAr4g5jIp17oKaXa64BbmDRZA3d1OZTipv5gu6Zmu9ACOdgQ B2kKYtLozyj2QttPQjme2JjEviEPFrOmsikYnFuexHzQsZIzgBrR5NN6JdgNVpexkHKs eFbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=SgbqSLCJ+HreWizvB5M4axjOfaVxwDqb+YsWNgjguM8=; b=CUJs7kInepkfIg7R3Tjk+3eE6/j52w9LVYMUDhhd/Ua+ckbkyEg4gQ6bQ4e3uUH4/4 Kc6rR/GnbMeiXYPIh2PszH4pX78RIC8CRsPvq1klP+bQbJLZEEnT0q+lMmr7FAn1Gzz8 RFVtRmVX1i0YiwvsHE04RHNbq2IEri+O2RIXQHAyYx1eQPTzMVi1dBLSNYLcUYMzlOni p/WpA72JT3c5fuwtt3i3nTM1GT+TUFd5Fw8iIw0fQYBEUkOcQ0r1XRYjMpAUnKMD+MI9 jNzZHD5EyCwIgeF9QE3nNlNG+32txhYVJaHxPqwNyfpmgPWu7bzbO2CDVDlgTcdwqAzV U5Rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aWfg16+q; 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 w10si10664318eja.116.2019.11.27.13.38.27; Wed, 27 Nov 2019 13:38:51 -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; dkim=pass header.i=@kernel.org header.s=default header.b=aWfg16+q; 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 S1730275AbfK0VfT (ORCPT + 99 others); Wed, 27 Nov 2019 16:35:19 -0500 Received: from mail.kernel.org ([198.145.29.99]:35314 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729838AbfK0Utk (ORCPT ); Wed, 27 Nov 2019 15:49:40 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1114E21787; Wed, 27 Nov 2019 20:49:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574887779; bh=7Zb84RMymvrQrGc5whayYZnaI5yyN4gn14MocjTCebU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aWfg16+q33RcafAkYES7GBP9yBHEZEtFwTZ2fzc0EVU6M0m1QfLwKtKg7jupwJFX6 7ALXenzCOv/zgizIjv4aZIC7M9pdXF4VsHcqac3hw9mbFqtU1c/eXgWssF7jnqAbrg Esel4yHUAXpX0KNYWzfu++niHZl8sbws/eyOLT/E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Taehee Yoo , Song Liu , Daniel Borkmann , Sasha Levin Subject: [PATCH 4.14 089/211] bpf: devmap: fix wrong interface selection in notifier_call Date: Wed, 27 Nov 2019 21:30:22 +0100 Message-Id: <20191127203102.160819159@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191127203049.431810767@linuxfoundation.org> References: <20191127203049.431810767@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Taehee Yoo [ Upstream commit f592f804831f1cf9d1f9966f58c80f150e6829b5 ] The dev_map_notification() removes interface in devmap if unregistering interface's ifindex is same. But only checking ifindex is not enough because other netns can have same ifindex. so that wrong interface selection could occurred. Hence netdev pointer comparison code is added. v2: compare netdev pointer instead of using net_eq() (Daniel Borkmann) v1: Initial patch Fixes: 2ddf71e23cc2 ("net: add notifier hooks for devmap bpf map") Signed-off-by: Taehee Yoo Acked-by: Song Liu Signed-off-by: Daniel Borkmann Signed-off-by: Sasha Levin --- kernel/bpf/devmap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c index 482bf42e21a41..1060eee6c8d5f 100644 --- a/kernel/bpf/devmap.c +++ b/kernel/bpf/devmap.c @@ -388,8 +388,7 @@ static int dev_map_notification(struct notifier_block *notifier, struct bpf_dtab_netdev *dev, *odev; dev = READ_ONCE(dtab->netdev_map[i]); - if (!dev || - dev->dev->ifindex != netdev->ifindex) + if (!dev || netdev != dev->dev) continue; odev = cmpxchg(&dtab->netdev_map[i], dev, NULL); if (dev == odev) -- 2.20.1