Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5112454ybl; Tue, 10 Dec 2019 00:16:01 -0800 (PST) X-Google-Smtp-Source: APXvYqztrQbbHqRwxLqjKVFuNTRnSXEYebV/w16XNkBBgKq40ACz1YZV90xDFMd3O93CiGwyc+vk X-Received: by 2002:a54:4f04:: with SMTP id e4mr2798999oiy.111.1575965760992; Tue, 10 Dec 2019 00:16:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575965760; cv=none; d=google.com; s=arc-20160816; b=P5FKzv9jJXlQD+e+6IipbTMAlt4mxxRXslG6VlBZXXnFfubvG7kSm+/NNrG9sntVrk hyCmvHCvVVqkGX4chMSgSWNB/d/yrnZNooAUojCYpWJo1xrIdcxYHc996prBiaapr14P 03tu9mepk19KVwhkwzGCAFoWv/eDF12YoNAdpgMORePvoe3LXJ0OCYefWF8NrElN+893 U6h4P8S5o2dIC3eSqGaqlPxRyI7GvRV9eMHX2efoL/CoHhv8xtbhhwluJZGBB+cxOP0n FCP3RzS6qiT7+X8V/UuvcPYuOvfD64Vl01h5A4P67JBFxKEOmr/jsVJwRNSoWDNP3D5D DG4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=Z3QbUuDM9pE9qovJUQv76vaNeMVWJZJGqPPOIl/DJQI=; b=z9uIK3Y/zy1LIrgZd9NifHFROSIUuYDwZVGc/Ozj8I0Ca00cJxJz0wOwoCU2hO+x9+ QOrJnJh/264NE/yHH3cikPTFLR1cr9xOXTz8oUyexx0E6j1P0XYKxVcYfSUzON7TXItB CFlXO7lkQ/58eqsx9/PK0RnyOLIWvG/N3SVuoTipR0UBQJJ9V+OK1K0sqjseGdgPpeoz M8I8bKjHzy6fYK64MdhxDjUk51ORoQaHsCNZj8w+G8dgY+DLHdi0RC3jToNnub4PxD98 XPCDSCa1u126opVYLQU1qR1VxE0H5/VL5GpPDEBbpr8WP2QVYkWTBrbEnWedapcjucA1 hs7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ZMseXGCE; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z1si1444713otp.70.2019.12.10.00.15.48; Tue, 10 Dec 2019 00:16:00 -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=@gmail.com header.s=20161025 header.b=ZMseXGCE; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727272AbfLJIPK (ORCPT + 99 others); Tue, 10 Dec 2019 03:15:10 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:36959 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727249AbfLJIPF (ORCPT ); Tue, 10 Dec 2019 03:15:05 -0500 Received: by mail-pf1-f195.google.com with SMTP id s18so8667454pfm.4; Tue, 10 Dec 2019 00:15:04 -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=Z3QbUuDM9pE9qovJUQv76vaNeMVWJZJGqPPOIl/DJQI=; b=ZMseXGCEq9sa+yPcP2XWg92cr3R3iGN9k1fDhp7lI6V0LwLtB3w3Cy+jxmk649eiix iNFBxBOM5jKfJfLjF/3Z40j2S+MjPkWaeJIloYsrNVJE4/W5PrR3/G/3Jxb6+cN0CXfT x9d2UxJtneL3B7Fk9ARSMRQJqE+aPEKhx3Czn2JWuhW3KvyqR0tKSpJITG28Q2ivb74z V+HamfhYBarUxAGXI6BxuybqrAvBUiQoqQhwElSOEcBaNtxzvszpDoYu0aipuYkbsHVP N9Vr2lYojKA/lhOMH2EM22fvsZSpq7NTF4IdegHk+8+ZA8fKj9t6vDsokzrtkxoX85o9 F2ww== 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=Z3QbUuDM9pE9qovJUQv76vaNeMVWJZJGqPPOIl/DJQI=; b=G0QHcPykocOfzMrHdFUk0g2qx3NttNXSM45lfT/MitnAmSJgFzL2aBZmW7GmhjoARJ 59v9vPVA32w3UW+HNJGkPdeDd0g9EJoi9BTexyOHBKn7eN0wPA3Pyw5uJF7/R/dk+InY FMuJHZTjdYlLuQAmLnNHgaBbyyBuozO8A1Lm1oClK9xqF+CilXl8YK+EUEfP/si3KIg0 dZ8TvU0WDxe+utoFtpcOsZcFMS4fwUc58UYD7jPL/zFqtqi1ddBCiW5gJtQLzLy0oRcx IJ+0cSwcVQawaGOuGf0u1DooNEueelLo0zwOSNDfENoIh53STKwg12fDMFLpHs77sJgn O13Q== X-Gm-Message-State: APjAAAXc3HPdQwvcTJVXkFhjEnJjIdASwkzn32Nqo5jVHU7IvtoTGB1U X0efmEfnvlAk4RcGxyX8YeQ974Dr X-Received: by 2002:a65:42ca:: with SMTP id l10mr23237968pgp.121.1575965704620; Tue, 10 Dec 2019 00:15:04 -0800 (PST) Received: from localhost.localdomain ([240d:1a:90a:7900:1572:c35d:e9db:e357]) by smtp.gmail.com with ESMTPSA id q12sm2136741pfh.158.2019.12.10.00.15.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 10 Dec 2019 00:15:04 -0800 (PST) From: frowand.list@gmail.com To: Rob Herring Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] of: refcount leak when phandle_cache entry replaced Date: Tue, 10 Dec 2019 02:14:53 -0600 Message-Id: <1575965693-30395-1-git-send-email-frowand.list@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Frank Rowand of_find_node_by_phandle() does not do an of_node_put() of the existing node in a phandle cache entry when that node is replaced by a new node. Reported-by: Rob Herring Fixes: b8a9ac1a5b99 ("of: of_node_get()/of_node_put() nodes held in phandle cache") Signed-off-by: Frank Rowand --- Checkpatch will warn about a line over 80 characters. Let me know if that bothers you. drivers/of/base.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index db7fbc0c0893..b57a57752294 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -1261,6 +1261,8 @@ struct device_node *of_find_node_by_phandle(phandle handle) if (np->phandle == handle && !of_node_check_flag(np, OF_DETACHED)) { if (phandle_cache) { + if (phandle_cache[masked_handle]) + of_node_put(phandle_cache[masked_handle]); /* will put when removed from cache */ of_node_get(np); phandle_cache[masked_handle] = np; -- Frank Rowand