Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp4324662yba; Mon, 29 Apr 2019 18:11:58 -0700 (PDT) X-Google-Smtp-Source: APXvYqx0YseaPUQRl7XwF9ghuHe9HxkUVv8hEKpyJzQvQgY1FgMfXJ5aPd5JQWg5i8lPzSEnqpIy X-Received: by 2002:a63:f24f:: with SMTP id d15mr63523465pgk.410.1556586718396; Mon, 29 Apr 2019 18:11:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556586718; cv=none; d=google.com; s=arc-20160816; b=ExeMqdtpM56SGAfWCgsrBYuo3xapXNl435G1TGs0Rr0IkO6AIsRWSZoGEHT+qYpOfU M9arKv46nZE1B47iDzYy/MaR2S8wY4zzNNS5QvH5iLVwZkXBTbMgEqjFgHwt9C9e66Py 1hfSkrV/vuYsOEAq1dVMmQ8kfHG72IJ0IOexQBPqAxhiOjOVCux1sRcE9GSE5tmEfL5Q JoaizWKmU48jXDfdv7Pizzekg58JGV6TIkXuZMU4GGoZ73R7/UrKgCZEICXFgCqLwpfi rxsZHebO9cUEz4snj2pndV3XjEhTuZpK+emjwkJl3WR1de14Ckm+vB4gew+nVgib7ElH 5HNA== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=c8rP92N4ywgTy0CI4uV13/RhNnhdhHkkmq5K58OlFZg=; b=Gq4dE9jZTE6T432AWLYgkX706RiQHPXz3LQ7aSeEkQls2zgPHJg0D9FK+59hsW1ble grLTOiKMPh4JLiw/k/cg5TEruxC3G8F3H0FMcbaQRMoS0Ugi7mRVGzksVWGCDjdhFEc+ nyjLpPpOjdHh7nWNwOFUuE9OyuDyYTcPUg3Kfu2p+1ZBKA+AFgQSGmD4EajjVAfpnOTu KMl9AHFxu6YyyhXw9CjesCDztChUQE7OFVnDIrLj+3nG7N+38Brq++J4j2v3WT/ennls Qb8UZTuN83kv6frU0OWno4K8sR5nKjrveWZ4roVMZPKcprWn/NfQlDYMbJJ4mTLWy8pb 3hLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=q7gOVqI+; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 16si36013753pfh.244.2019.04.29.18.11.42; Mon, 29 Apr 2019 18:11:58 -0700 (PDT) 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=@messagingengine.com header.s=fm2 header.b=q7gOVqI+; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729801AbfD3BKN (ORCPT + 99 others); Mon, 29 Apr 2019 21:10:13 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:33707 "EHLO out1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729238AbfD3BKM (ORCPT ); Mon, 29 Apr 2019 21:10:12 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id D05DF21FED; Mon, 29 Apr 2019 21:10:11 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Mon, 29 Apr 2019 21:10:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=c8rP92N4ywgTy0CI4 uV13/RhNnhdhHkkmq5K58OlFZg=; b=q7gOVqI+/OW320Nm92TAhwq6pdaQ8zFol r8B8hEsAab5FVpqHvg+kZQawXQ4J9IscJLVAZUEcRINko2QqM/iS6KyiVnOd8/Oq v6VRqVNokyhQ8YCYsij4bpKJmVMKSwG66OHSEGd5Ga5Zpa9EfYn8fsa/rnsY//KK 2/JG5aMlzi1nvIZbiALrLpAc6NXnSXmBOT4PJqGHbHEqslC2ZfEemVSvwXsZXtX7 ea2SOfaNXxI8B9fKJVL//u3CmSpLXNoowdG8KvZ8G1R6qnQulgK10B1j/rTOO998 R7OxpG1OTBIDKD10+Diakn3l/azqWi/JnYFa/CCTswXBc1BJAuSCw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrieefgdeghecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgggfestdekredtredttdenucfhrhhomhepfdfvohgsihhnucev rdcujfgrrhguihhnghdfuceothhosghinheskhgvrhhnvghlrdhorhhgqeenucfkphepud dvuddrgeegrddvfedtrddukeeknecurfgrrhgrmhepmhgrihhlfhhrohhmpehtohgsihhn sehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedt X-ME-Proxy: Received: from eros.localdomain (ppp121-44-230-188.bras2.syd2.internode.on.net [121.44.230.188]) by mail.messagingengine.com (Postfix) with ESMTPA id 6802FE4173; Mon, 29 Apr 2019 21:10:08 -0400 (EDT) From: "Tobin C. Harding" To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: "Tobin C. Harding" , Greg Kroah-Hartman , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH] powerpc: Fix kobject memleak Date: Tue, 30 Apr 2019 11:09:23 +1000 Message-Id: <20190430010923.17092-1-tobin@kernel.org> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently error return from kobject_init_and_add() is not followed by a call to kobject_put(). This means there is a memory leak. Add call to kobject_put() in error path of kobject_init_and_add(). Signed-off-by: Tobin C. Harding --- Untested, did not even build. Bad Tobin, no biscuit. No call to kobject_uevent()? I'll be back to check usage of kobject_create_and_add() later, then I intend to check all the uevent stuff, feel free to leave this for me to check later if you don't know the reasoning straight off the top of your head. thanks, Tobin. arch/powerpc/kernel/cacheinfo.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c index 53102764fd2f..f2ed3ef4b129 100644 --- a/arch/powerpc/kernel/cacheinfo.c +++ b/arch/powerpc/kernel/cacheinfo.c @@ -759,23 +759,22 @@ static void cacheinfo_create_index_dir(struct cache *cache, int index, index_dir = kzalloc(sizeof(*index_dir), GFP_KERNEL); if (!index_dir) - goto err; + return; index_dir->cache = cache; rc = kobject_init_and_add(&index_dir->kobj, &cache_index_type, cache_dir->kobj, "index%d", index); - if (rc) - goto err; + if (rc) { + kobject_put(&index_dir->kobj); + kfree(index_dir); + return; + } index_dir->next = cache_dir->index; cache_dir->index = index_dir; cacheinfo_create_index_opt_attrs(index_dir); - - return; -err: - kfree(index_dir); } static void cacheinfo_sysfs_populate(unsigned int cpu_id, -- 2.21.0