From patchwork Wed Oct 18 14:58:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 154917 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp4850067vqb; Wed, 18 Oct 2023 07:59:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEuu3pCLuSBI3X/GnZEkk7p7WgzH/ZWETbKEusH9VhU9FyQY1Sp519FEgovGrAWM+r3Emna X-Received: by 2002:a17:902:e80c:b0:1c4:1e65:1e5e with SMTP id u12-20020a170902e80c00b001c41e651e5emr5648137plg.0.1697641185874; Wed, 18 Oct 2023 07:59:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697641185; cv=none; d=google.com; s=arc-20160816; b=RwWuSitX607CIRZEmzAXAT7ZFwhqfCwv2wwoVBzF7j9+Vx5R69ZTPxDaxrLx0azt2j ezzMBI4XQoAKREMZM/CSpQZ6XCh4IRYXZ2G2V5zjGJqtFFAtWc7QdQPePHpeuuEOynxV NW12PWwROsQ+ek4YBy+Pa+hxuk3SpXgJ3JP0W8SnQQU0SQRwyTmNC/9cCsfAFWrCrWqE Opkq56lutNh1PS7a6w6mWyjBY4DgKe+nCAeXhi1t2fAviRnZKCyFzx+6zh98d6UfjyEs izZFOkrWvxo6JHTA+XoWlCSaSve5q7JBe3bc7+Lv63YD+MQzw360zJItRZotzjOUN/Gf o/AQ== 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:dkim-signature; bh=/Xk6Y6L1OCcuJHKKRuxdccdNQhai2X9YDUY8Zz3xCSs=; fh=RFOdHqkjOodRqY0wD/9mdtembx0LNrYO/l15prQrgvM=; b=TDTJv/NvEOty/Y8ui6TbgCx8FyGUcHQL2/wSWvA74uCOI4GguMRQuTGrq9AUCePicO 0oZ2a/7erR8WU4BfNblqmR7eIPTbqX9ePiGQNbs+kYbOyTA/1DcCs3wtp0kiBS/1808c seo4uYdvSbamVlU8HWuwuG2qIbfzOZllVrO2KdOt1OXo3Yt2awMJp8kslyu6TPl2oMX9 l3nvPkAzsQUnx0MscfL103F25ABkhg5PFiFEf1c+0mpUSHSd3+J7etZmUnz1czzgEek2 X6W7bqIv2KupWCyT4LQw+1dlEmb1mrrk9By6YYI8C8dA2sbhhqvjFYYBFE7hV0koR6cl QxOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=iO68uudA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id s14-20020a170902b18e00b001bba894ac4asi37217plr.274.2023.10.18.07.59.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Oct 2023 07:59:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=iO68uudA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id C70298226F51; Wed, 18 Oct 2023 07:59:43 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345109AbjJRO7b (ORCPT + 23 others); Wed, 18 Oct 2023 10:59:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235243AbjJRO72 (ORCPT ); Wed, 18 Oct 2023 10:59:28 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E503DBA for ; Wed, 18 Oct 2023 07:59:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697641166; x=1729177166; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=efWEYbNSPrNMZw5ETi6i0i2V6S/DkOB90d/QiicL5io=; b=iO68uudAKL04XHbvl9/MnIJEEBcn1e2njJOUZeJTYKGQgF6YuM4LkplH ro8UAUFC0fAiogQrQ/l9jI7OXQdu0tMjHNDdrKnKsrSpxOGFhCNGLazCm 1TdMZN9fRdeOm95w7NHYIyoWwpqiio3OgZLiyAWMisRzkwMbIJseDWN12 tpdyY0MJUydljB6Pc0M2rMAZw7LOtpnDcRbyitVu3AO6aoGYHS2OcFaz7 +fjiRzJ9u3sVP8Z1yAmAk0V7QPnSmxKApMM5EjyPOLR2H9RvRBkkQlU2L wnbQ9ac3YBEJVpP/JSFhHEauc1+sHVMIVYZcesk0IrcfQSWHkbe3MzZpM A==; X-IronPort-AV: E=McAfee;i="6600,9927,10867"; a="417140771" X-IronPort-AV: E=Sophos;i="6.03,235,1694761200"; d="scan'208";a="417140771" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Oct 2023 07:59:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10867"; a="873046332" X-IronPort-AV: E=Sophos;i="6.03,235,1694761200"; d="scan'208";a="873046332" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga002.fm.intel.com with ESMTP; 18 Oct 2023 07:59:01 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 97E3317F; Wed, 18 Oct 2023 17:58:59 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Sudip Mukherjee , kernel test robot , Dan Carpenter Subject: [PATCH v1 1/2] parport: Clean up resources correctly when parport_register_port() fails Date: Wed, 18 Oct 2023 17:58:55 +0300 Message-Id: <20231018145856.1367607-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Wed, 18 Oct 2023 07:59:43 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780105804526982554 X-GMAIL-MSGID: 1780105804526982554 The smatch warns about uncleaned resources in case the parport_register_port() fails: parport_register_port() warn: '&tmp->full_list' not removed from list This is indeed an issue introduced when converting code to use kasprintf(). However, the whole kasprintf() dance in this case is not needed as dev_set_name() can handle the formatted input and produces the same result. So, the solution is to delegate name forming to the dev_set_name() and make device_register() error path to deal with error handling (via put_device() call). Fixes: 8d8ae17eb0de ("parport: Use kasprintf() instead of fixed buffer formatting") Reported-by: kernel test robot Reported-by: Dan Carpenter Closes: https://lore.kernel.org/r/202310180809.hepZB9k6-lkp@intel.com/ Signed-off-by: Andy Shevchenko --- drivers/parport/share.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/parport/share.c b/drivers/parport/share.c index a9a9cb0477ea..048a459ce4b0 100644 --- a/drivers/parport/share.c +++ b/drivers/parport/share.c @@ -361,7 +361,6 @@ static void free_port(struct device *dev) kfree(port->probe_info[d].description); } - kfree(port->name); kfree(port); } @@ -479,16 +478,13 @@ struct parport *parport_register_port(unsigned long base, int irq, int dma, /* * Now that the portnum is known finish doing the Init. */ - tmp->name = kasprintf(GFP_KERNEL, "parport%d", tmp->portnum); - if (!tmp->name) { - kfree(tmp); - return NULL; - } - dev_set_name(&tmp->bus_dev, tmp->name); + dev_set_name(&tmp->bus_dev, "parport%d", tmp->portnum); tmp->bus_dev.bus = &parport_bus_type; tmp->bus_dev.release = free_port; tmp->bus_dev.type = &parport_device_type; + tmp->name = dev_name(&tmp->bus_dev); + for (device = 0; device < 5; device++) /* assume the worst */ tmp->probe_info[device].class = PARPORT_CLASS_LEGACY;