Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp4115555pxb; Tue, 7 Sep 2021 15:25:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw6r9Z+r0ZUCHoBWGi8eg9yOwYtn4jnfzkcpNyqGhfZGOq9M76siIX6cBORwQMCSFVlGJrs X-Received: by 2002:a6b:7a03:: with SMTP id h3mr382706iom.39.1631053518980; Tue, 07 Sep 2021 15:25:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631053518; cv=none; d=google.com; s=arc-20160816; b=bKjkAVm/3F8j5msQ1MLR0GigmyUpZRQRnNpjInYkL3eZAhYYOrP5vi5YvNLodKuL0Q gTvo4p0Jf4gAFKwvCyPgmrRfHfngkyh0B5yGStuMlAM63clpsWpYI8vsPpjKkLOqzdEQ keAFsvAYjmy+Uok+wdDrkopq9j4jtBQqEdV/KCHMEudvNHkwcGvnpJY1mlbfH2JI34v1 nqE6g0blqk3Ivg+fWS6kzt8WG8Xm4jUCLSrrmL2jL9RzLkz5TdyLZJz5YRIas2uXsRXu qxcEQdmsDU/M9+wk1UKiyAuFawBT/gSTbcy6O7ES1O2Q/PFi+gIqHI7xJqzlOBE7X8gr zRGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=GqEHhJRKRrjmSQp/tX4WE88UumNlkwn8aiFuElJ/+cQ=; b=0MBANSMqH9a0Li+11s8rTiqdmPFWzAlu16XYEBANz1+J7KUpVqgpn/pw+oyWAM2oN3 wjqXscD5+HSjXo9KVIaSGLKy5QuxWE9Rl/PEjrrltu7GB4cVEhiVyi6kseEyeCIgZJRz 6UuzJ8LapgYoMvC8HQoqJC2kB++gmVpjV7szJq6XasWAjXuEJTAS49+EY/6K4ragPJiD PS7NuK8Yf2ZuBZIB0G36Kfpmk0MEsG7uWdOi9tcaimT8YbrSSvYA4a5OxvHTkgTk/saa kDaOe31NUjoIQqODZrTp4QC2Ph8W+PY0HemYZuC7q6DQDjmxfMSrPNhIURo7WE+3jZ0Q bQIQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a5si220844ioo.37.2021.09.07.15.25.07; Tue, 07 Sep 2021 15:25:18 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346774AbhIGVHq (ORCPT + 99 others); Tue, 7 Sep 2021 17:07:46 -0400 Received: from smtp08.smtpout.orange.fr ([80.12.242.130]:28707 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346428AbhIGVHp (ORCPT ); Tue, 7 Sep 2021 17:07:45 -0400 Received: from pop-os.home ([90.126.253.178]) by mwinf5d16 with ME id r96Z250053riaq20396ZGW; Tue, 07 Sep 2021 23:06:35 +0200 X-ME-Helo: pop-os.home X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Tue, 07 Sep 2021 23:06:35 +0200 X-ME-IP: 90.126.253.178 From: Christophe JAILLET To: minyard@acm.org, zweiss@equinix.com, andrew@aj.id.au Cc: openipmi-developer@lists.sourceforge.net, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH] ipmi: kcs_bmc: Fix a memory leak in the error handling path of 'kcs_bmc_serio_add_device()' Date: Tue, 7 Sep 2021 23:06:32 +0200 Message-Id: X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the unlikely event where 'devm_kzalloc()' fails and 'kzalloc()' succeeds, 'port' would be leaking. Test each allocation separately to avoid the leak. Fixes: 3a3d2f6a4c64 ("ipmi: kcs_bmc: Add serio adaptor") Signed-off-by: Christophe JAILLET --- drivers/char/ipmi/kcs_bmc_serio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/char/ipmi/kcs_bmc_serio.c b/drivers/char/ipmi/kcs_bmc_serio.c index 7948cabde50b..7e2067628a6c 100644 --- a/drivers/char/ipmi/kcs_bmc_serio.c +++ b/drivers/char/ipmi/kcs_bmc_serio.c @@ -73,10 +73,12 @@ static int kcs_bmc_serio_add_device(struct kcs_bmc_device *kcs_bmc) struct serio *port; priv = devm_kzalloc(kcs_bmc->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; /* Use kzalloc() as the allocation is cleaned up with kfree() via serio_unregister_port() */ port = kzalloc(sizeof(*port), GFP_KERNEL); - if (!(priv && port)) + if (!port) return -ENOMEM; port->id.type = SERIO_8042; -- 2.30.2