Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp981113ybt; Wed, 17 Jun 2020 19:50:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzB+BzpG6bsQDV+u0u6bu/sEd9/WJbnEN28M5xWLYKtCrq2bP77R8ArZHdOSFBIbfej1Jan X-Received: by 2002:a17:906:2cd5:: with SMTP id r21mr1976332ejr.20.1592448617884; Wed, 17 Jun 2020 19:50:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592448617; cv=none; d=google.com; s=arc-20160816; b=Ssj4BJBPbop9n+EKT1u1dfb5ApXca13L09lXeG8t9HhUfsOmoEKTAq7HYd6poEZ5RF U95PBPc+XGinuCmsXOGbb0oP8R4rpvM5yczIF+iKL+AxGGcAMmv//6IYMpWOeAYRh9uz Bsud21ujXZelSHVETlD9Q9b3+iGxMk2BkSkC6n6qjO1A+V7iPjGdMk2GYqKPWaZoNtyL ESuu27v2imOOEf41KJvOhDdjpMpWdk9WIFC9wzlvHmu9TA365+aZ8ZBsx4tbKfF8FVdO 040EpbrmwhNE4hvKcduhxICoqgFLl8kFKGkG0dKacEx4N3zS30daZwfhvy8OWmpHckiB Wt3w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Xj5m+ZSFPRwSGVPprsrWxlmUY4+73fFxVaNm3HByULw=; b=BqHjK67z7XaBs6MvChsLTBM1kcbE4BJrvPqe7gyVms4CNM6HcfiNAqzkq0UzZCuuk5 o82Bk3ms+4fCfbWsTIf/LWfcClpzc7Oct3NW9U5SoI8huNwhp3jlIr4FkZ/sUBa7dr1I LLyzlNZQQkL5CbhCLOGpvEW5wq/kD+NUtFKJ1OnN0eE38/anSEtCg8jy2ymCxjjTTcLq ClZSxCy97Z1ye8YTAgf31Buv4lTYk5Ipj74Js2iHZgsyNFHRK+8DHh7yguX3Q+Fkty+C WuA5zEpMmGwvW8NW1J1cla5/fxZYAp8yL/x7Xs8esLNFsPx3osR8q8F8gRl7NEVwJOZ1 GuUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EXdBmNSb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j16si1096304ejx.475.2020.06.17.19.49.55; Wed, 17 Jun 2020 19:50:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EXdBmNSb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728378AbgFRBKD (ORCPT + 99 others); Wed, 17 Jun 2020 21:10:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:36694 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728341AbgFRBJz (ORCPT ); Wed, 17 Jun 2020 21:09:55 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C066E21D81; Thu, 18 Jun 2020 01:09:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442594; bh=iZ1o1yPV/RcV9olBx73vgaWmv1mp/Xdd0HgpzYi4P5Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EXdBmNSb5q3kr5EMdNT5nB49nzHJ7iKd5je/QrxY6IvowUwgIr/mMT221ZFRcW0Tx Rc5ioXNO04pw5l9gb+r3Dwr6H8z+yHG7jBPUbUJYmWOoR5wL7neHfBDSf3V7s1O3zO bFd/t///m0khmCY4TyBFihqkvl9qPyHzKJAV45KE= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Qiushi Wu , Jason Gunthorpe , Sasha Levin , linux-rdma@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 083/388] RDMA/core: Fix several reference count leaks. Date: Wed, 17 Jun 2020 21:03:00 -0400 Message-Id: <20200618010805.600873-83-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Qiushi Wu [ Upstream commit 0b8e125e213204508e1b3c4bdfe69713280b7abd ] kobject_init_and_add() takes reference even when it fails. If this function returns an error, kobject_put() must be called to properly clean up the memory associated with the object. Previous commit b8eb718348b8 ("net-sysfs: Fix reference count leak in rx|netdev_queue_add_kobject") fixed a similar problem. Link: https://lore.kernel.org/r/20200528030231.9082-1-wu000273@umn.edu Signed-off-by: Qiushi Wu Reviewed-by: Jason Gunthorpe Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/core/sysfs.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c index 087682e6969e..defe9cd4c5ee 100644 --- a/drivers/infiniband/core/sysfs.c +++ b/drivers/infiniband/core/sysfs.c @@ -1058,8 +1058,7 @@ static int add_port(struct ib_core_device *coredev, int port_num) coredev->ports_kobj, "%d", port_num); if (ret) { - kfree(p); - return ret; + goto err_put; } p->gid_attr_group = kzalloc(sizeof(*p->gid_attr_group), GFP_KERNEL); @@ -1072,8 +1071,7 @@ static int add_port(struct ib_core_device *coredev, int port_num) ret = kobject_init_and_add(&p->gid_attr_group->kobj, &gid_attr_type, &p->kobj, "gid_attrs"); if (ret) { - kfree(p->gid_attr_group); - goto err_put; + goto err_put_gid_attrs; } if (device->ops.process_mad && is_full_dev) { @@ -1404,8 +1402,10 @@ int ib_port_register_module_stat(struct ib_device *device, u8 port_num, ret = kobject_init_and_add(kobj, ktype, &port->kobj, "%s", name); - if (ret) + if (ret) { + kobject_put(kobj); return ret; + } } return 0; -- 2.25.1