Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp527483ybt; Sat, 13 Jun 2020 12:08:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw5v7LqtPZ05OeDauGB4LemFzLfhnykE9iGm9o1inPCbYPqpAwFqlcnIE0UGb2JbGAJfgQ2 X-Received: by 2002:a17:906:d14c:: with SMTP id br12mr18251664ejb.552.1592075282999; Sat, 13 Jun 2020 12:08:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592075282; cv=none; d=google.com; s=arc-20160816; b=wJRm46nrQ89Jm6G4cst2G24vSbp431gH8Gxs6nVhF74kgGOWkMQF4e1IU7vyvDmVEY ZMh29zr7rKf0Gzq3YWpdr7T0756JPGK5wFtYvN47XeyJo+x0lRDyizdVor4/+Ey6q43M jN+eYmFbBZfLIxmXtKoocAb1RrJxTO3F4fmT8OLxMHsf7AMuWXSkH8mkvz7vdWinF56a 4XqojvVSPJFT6HL7YFwN2hauyELbuUsJJS+W1jXUnbZ+VOahp8sNioACPeeCJ2BrNoJk brGRaTLn9kyNrg2RRGh3l8uzWmXjPHbP57gtse87aZICJmsYO2zrgEgYo+/LI9ODVvYk Ay+w== 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:dkim-filter:dmarc-filter; bh=o2FOKEQ94D1GV7+5LNDHjuMFh+VY1uzX12Wnv43ZbD8=; b=n0IzjVEgzymvCKEsqge870QYmOcJrVYCUXR2N0OA3N4IlW08vELfykJeN/IuNlT7DG Um4G4AzjPqM3HDZnrx7TChyc56QSKt6Cl2fWS5KyohDeI5hIzYbyeq0yEUHqlBAjzOnS Z48Uq1VUB+F4QcEgVq/NyCEzmFWF1ynZbOKYgoa7RjUatHV/tMlJ9SqzTzAEzVF51Y0R rG4ZlmZCsSlvhbVtHyQ28LsicojYQNFjRYq37xn88qqoOZ1wvKuyyuCAYmw33hfj/HAj lsU2cR/2WQYkF44C3LnOPDnPSmihRFu5d2E2QORMl9DGobaFWPwbJd19Ac1fb7GN5Wqi tX0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@umn.edu header.s=google header.b="b+T/oLYv"; 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=QUARANTINE sp=NONE dis=NONE) header.from=umn.edu Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y93si5894509edy.109.2020.06.13.12.07.40; Sat, 13 Jun 2020 12:08:02 -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=@umn.edu header.s=google header.b="b+T/oLYv"; 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=QUARANTINE sp=NONE dis=NONE) header.from=umn.edu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726517AbgFMTFs (ORCPT + 99 others); Sat, 13 Jun 2020 15:05:48 -0400 Received: from mta-p5.oit.umn.edu ([134.84.196.205]:36854 "EHLO mta-p5.oit.umn.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726258AbgFMTFr (ORCPT ); Sat, 13 Jun 2020 15:05:47 -0400 Received: from localhost (unknown [127.0.0.1]) by mta-p5.oit.umn.edu (Postfix) with ESMTP id 49kn9k2lXKz9vYjY for ; Sat, 13 Jun 2020 19:05:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at umn.edu Received: from mta-p5.oit.umn.edu ([127.0.0.1]) by localhost (mta-p5.oit.umn.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kWRdSWOyIsVE for ; Sat, 13 Jun 2020 14:05:46 -0500 (CDT) Received: from mail-il1-f198.google.com (mail-il1-f198.google.com [209.85.166.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mta-p5.oit.umn.edu (Postfix) with ESMTPS id 49kn9k15j1z9v90G for ; Sat, 13 Jun 2020 14:05:46 -0500 (CDT) DMARC-Filter: OpenDMARC Filter v1.3.2 mta-p5.oit.umn.edu 49kn9k15j1z9v90G DKIM-Filter: OpenDKIM Filter v2.11.0 mta-p5.oit.umn.edu 49kn9k15j1z9v90G Received: by mail-il1-f198.google.com with SMTP id x63so8932181ilk.8 for ; Sat, 13 Jun 2020 12:05:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=umn.edu; s=google; h=from:to:cc:subject:date:message-id; bh=o2FOKEQ94D1GV7+5LNDHjuMFh+VY1uzX12Wnv43ZbD8=; b=b+T/oLYviKv/mte4B9pdAcQFXVhNY69kXPGrXUU38u3BOUFasXoyr1Kgej9HVkzXxs Ij8d+SfMB2q4QSeN+DyIfLyqpKAcKYYprE5PYt89EyliIe+dP6nEL/71vhcZxEuT6y04 Q3dwBhcpiRRKbpkVWBIHSyEQjrfJbsdW8e0idsDZLGLlJEDjM6LmHO3WP1o1xA2l6uuC RbkC6vl793qCKGP3gEEO9lov999q5Wxe7GsBCkrkX2t1lVYG+PUxmNv9VPVyC1ETO0g5 d82C1xJlw0XCNEIVoziCsfKDJrBoADvu2ELiZ09FPnNJykyk4gPnxGQjoT5eQw9aFedp ua0A== 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=o2FOKEQ94D1GV7+5LNDHjuMFh+VY1uzX12Wnv43ZbD8=; b=a2RE3fZ58n2fqEXL6ojCZRe8MdBxHumbOaPbb1AXeMsdALA+gLd91m9qHByn0t9/kp yFFJfuyfDFDjidad0UpWvKZ853ubgKKkxlT4TTzs+2ntE4Dh5pQ3u5ISgKmRUn1YVJwK B0RbEEWian/QZilMdjjX2FUJYD4UV4kAyJlNCfjIzZHNHf2LE5cRATFBv8IlSz4xZmGw bX0OnJiExmGfYwobCsgyRrXQTvbVbVUByrxi1eBDZwJFM5S4nON1IHEq/PPQnSOBVmJf mhFhzTluPgKR/qlmVRqfdUAvra1D4Qct5UedyDUwg2t4BdshCpkdVwxE5N8BY/G0I13Y N0OA== X-Gm-Message-State: AOAM533uQHevlP4SMUXxLfuMsMfF37jrpnU75ggsVKNs8HUQfaot29ot wz2PobDdNfTzE3rOWLw0y1f22KEnaOCxjqu/Z5e8g8NZQthGZt+kwHBS5TcQzQd9ooN0RrsED2p w1Qd9Dqnc+B1WkVVoXTpvcJiLmNkl X-Received: by 2002:a92:9a5c:: with SMTP id t89mr18359194ili.280.1592075145379; Sat, 13 Jun 2020 12:05:45 -0700 (PDT) X-Received: by 2002:a92:9a5c:: with SMTP id t89mr18359175ili.280.1592075145066; Sat, 13 Jun 2020 12:05:45 -0700 (PDT) Received: from qiushi.cs.umn.edu ([2607:ea00:101:3c74:4874:45:bcb4:df60]) by smtp.gmail.com with ESMTPSA id r17sm5194889ilc.33.2020.06.13.12.05.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Jun 2020 12:05:44 -0700 (PDT) From: wu000273@umn.edu To: kjlu@umn.edu Cc: wu000273@umn.edu, Gabriel Somlo , "Michael S. Tsirkin" , qemu-devel@nongnu.org, linux-kernel@vger.kernel.org Subject: [PATCH] firmware: Fix a reference count leak. Date: Sat, 13 Jun 2020 14:05:33 -0500 Message-Id: <20200613190533.15712-1-wu000273@umn.edu> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Qiushi Wu 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. Callback function fw_cfg_sysfs_release_entry() in kobject_put() can handle the pointer "entry" properly. Signed-off-by: Qiushi Wu --- drivers/firmware/qemu_fw_cfg.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/firmware/qemu_fw_cfg.c b/drivers/firmware/qemu_fw_cfg.c index 039e0f91dba8..6945c3c96637 100644 --- a/drivers/firmware/qemu_fw_cfg.c +++ b/drivers/firmware/qemu_fw_cfg.c @@ -605,8 +605,10 @@ static int fw_cfg_register_file(const struct fw_cfg_file *f) /* register entry under "/sys/firmware/qemu_fw_cfg/by_key/" */ err = kobject_init_and_add(&entry->kobj, &fw_cfg_sysfs_entry_ktype, fw_cfg_sel_ko, "%d", entry->select); - if (err) - goto err_register; + if (err) { + kobject_put(&entry->kobj); + return err; + } /* add raw binary content access */ err = sysfs_create_bin_file(&entry->kobj, &fw_cfg_sysfs_attr_raw); @@ -622,7 +624,6 @@ static int fw_cfg_register_file(const struct fw_cfg_file *f) err_add_raw: kobject_del(&entry->kobj); -err_register: kfree(entry); return err; } -- 2.17.1