Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp1296459rdh; Mon, 25 Sep 2023 08:33:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG/JcWyRr4NDlNNdVgUO6VeUUnn4qEuPXvECApFBRax1PDH5RciNrj7KsLw8rdfZazoNmUm X-Received: by 2002:a05:6a20:9699:b0:157:be16:b6bc with SMTP id hp25-20020a056a20969900b00157be16b6bcmr7314251pzc.59.1695656015442; Mon, 25 Sep 2023 08:33:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695656015; cv=none; d=google.com; s=arc-20160816; b=lKMekpvDD5+H4MGKiHEb3LBn2NJAFFLxG+yXAM3wQhQqvUri4mPN7CMcGYembkjxXn t7/YDclolRUN/XpnUMo3Pyt6tocXI11s3xbMauoNMpV/zTI8Ai4MiG/yIFfj9ENmqxZ0 77Y68JIXgJGaY1EtMlCq7/oKMNB57nT2aaJIRIfM8MkOfG5dzOSo38vInSXaap+t8fzt bv7H7pXnOuW8x9WjutN9WNjW8D3vv3HDlT/2tdZrHZK98UwJ/Hw9XFqkztihtu+HY3Ke lY1Y1dmfUlkmr3oUxhmIB2bzll27YcjW44qAvB2wUKIL+UoJYQbSADWV83SfrJygMOJc 58QQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:ui-outboundreport:content-transfer-encoding :in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:dkim-signature; bh=aK80aM0DExTUCpgh0aMCWfWffCvEYaC3NlqEnhh2tjc=; fh=U/iTSfxqiP0ce4IfwH0ekMLPgzITzFWKExhU85RIjWM=; b=VquLkIeokX+fT50a4jKW+0unTcgvjBNsGgjX4gl3jvpfgPmMDJIc5cQkv9Q/e4nktE h0B0HBXMt01JIniKjyA6ILWGITuUkI201MRRUKrcF4XPoKCJ41KY881LBlgKKCON3rs9 y3iFXqXxurodTwCWz+F02VG4DSFF+um/8cLp7wTuou+pUAa06zbbK8rnHQfzDKoqXitE qZEmPyY30jPeehu7DGYWjjMCHnLZ5xzVN+Ivm7MF7g8U+fHFgHySVIeOze5nNWZGn713 A5WRgp+9ObRVrAecjCg/kd+yuebUVN5XEJEgUL3H8SVAZGi2IjsR5y5uK6Uep/QuKUsG dWTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b="s5As3/rz"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Return-Path: Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id t2-20020a17090aba8200b00273ce975beesi10450894pjr.114.2023.09.25.08.33.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 08:33:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b="s5As3/rz"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id A8836808690A; Mon, 25 Sep 2023 07:26:29 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232258AbjIYO02 (ORCPT + 99 others); Mon, 25 Sep 2023 10:26:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231450AbjIYO01 (ORCPT ); Mon, 25 Sep 2023 10:26:27 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BF0D2B6; Mon, 25 Sep 2023 07:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1695651961; x=1696256761; i=w_armin@gmx.de; bh=aK80aM0DExTUCpgh0aMCWfWffCvEYaC3NlqEnhh2tjc=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=s5As3/rz20XFTPpByQ2bqvlfVNbHMs/SvRDIAXJX9nwAHuxGTuMuxgVJbmflybwOSoVKEQG7/x9 GJRSAuS9h3OQOIAUIWB0oFj+Z8colaPWxv2xUWXzFSHmyYRn8DZqbj0kSRQVadZJ/01w99JZ6gp+/ hfih257V+sQSW1+chduTiXH4IVK0U08+G65zc9cv8KTqfHK5ty4retxkyGcARH7+SDprH8cXNvF87 pCSqwIDH0nxdwNBQftKEvZhmPQZGGTX51YNrFI9y/3aUT4gj4DJjx43bUi8Cyua9LsZADpVleTWO8 cMT7qzEHTIgrbywjAKKhis2j6URC7Sedu4KA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [141.30.226.129] ([141.30.226.129]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MUXtY-1rBHb71vhQ-00QPzi; Mon, 25 Sep 2023 16:26:01 +0200 Message-ID: Date: Mon, 25 Sep 2023 16:26:00 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [External] [PATCH] platform/x86: think-lmi: Fix reference leak Content-Language: en-US To: Mark Pearson Cc: hdegoede@redhat.com, markgross@kernel.org, ilpo.jarvinen@linux.intel.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org References: <20230923204154.86815-1-W_Armin@gmx.de> <8e1592dd-7e95-20a6-15e7-f21798af3d37@lenovo.com> From: Armin Wolf In-Reply-To: <8e1592dd-7e95-20a6-15e7-f21798af3d37@lenovo.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:k1Wm96zYmS4Tdaqn9ACb20hIuP9E/md7IlRH14GzZYvcux/RJKj rGqy3IRHQbdTaVaTikYcoIpotxb0a+7vv/hp52LVK/jOFbykUMHgJQVDg1u33pBNJzxLvY9 pMLp78nK6d5lmjKX+qpd1QLHjXAPQ9P7yADAtXF3Pkvgv+Xm4EYkyo2Y7m/DsN1ur0cTo8E FOWGNaZ0h6iVxxPFqIAlA== UI-OutboundReport: notjunk:1;M01:P0:CPIN7LPOP3M=;q02l1TqudyDj+/HE+p0zWCwrvxt 6m1vj2Xmo0fXR1QFDCyjDbEVp9I6x0UmuaVCrP9pxuH2mIbXJOXvqtkh8yBbc1xYJiDuvNe5c YIHZ9OcokvPLlTT/nqlbkR0PkvV8v6UIPMimB/rdFCcDnvp8qWcLxSIbdJsrh960u7c1SErle EE76FB33RwZUON0jrfqKHBM5V00tufFokUI8gDwgkPUB3t2e2snwROSN1ujnPDFfW+uU4yPh8 nOykyGL85RBb9An/6mGP+vYCq2a6xUCbmTG08PPmDaaE9EbBgvYrzq6x8iVfmGzbzDbQfuTBh 3vqSog01k+Q87A2JY/HN5LV5FkwckOmUNGfS4gA2qNy7Wt5nII+4x6wFOhI1MxqBFujcJIzNn JRhjv00dl5v/1b8aCXhuwSTknoU+aD00TrhUKP0xJx7dJd+JA3pXJe1WpVSRSiJ6+GwN9Asgt Jlrl6lGRWSaeiseLAvD6TzZ268cFs7zahd3kaIPhTsFU0i18Ky51aLkCKXfWEhAoL/rCy3uIU roVvcTb/E6zJHhra2ztvfg27NIysbUhBO7Y8Z7C0YO+lMskQLp1K3myG/w6Gt8wu3BY/wIFb7 jFXn1uu48YuO48ipIbhRWKz22/duPuBZF8P1FfMfY7Li0oICymvptpzrWjAqIAE6JQcRj+9Ns VDeBSwIUQ8yBInIvyI7CHrTqxTU8Y3zGEgb0eUPphW2vSZFfEOm1tRZUzWGKtvfdk26XzJPAF 8Snt+XTo1O7X6+t2ZTaxkNMxXbXlpGRroT1ecf687Jjngnmd1AR4IXC1n6865f4uSC4mLB8ym GLM+bm0jd/rTFyVwKO2kAdbApugnaEe97ilkNdzhkfNgOPKlxilcppmEw4YPlv1ru8lu1EaxB 1G9IgjNgyi09gup/jktPtcpsU2ssBi0k9EaugJgHV5kJuJejYCO6iZjiAB55lto35Zyp3aAFR RoyqhW6RMgIfsObueirczjSOgcI= X-Spam-Status: No, score=-2.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, 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 pete.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 (pete.vger.email [0.0.0.0]); Mon, 25 Sep 2023 07:26:29 -0700 (PDT) Am 25.09.23 um 16:00 schrieb Mark Pearson: > Thanks Armin, > > On 9/23/23 16:41, Armin Wolf wrote: >> If a duplicate attribute is found using kset_find_obj(), a reference >> to that attribute is returned which needs to be disposed accordingly >> using kobject_put(). Move the setting name validation into a separate >> function to allow for this change without having to duplicate the >> cleanup code for this setting. >> As a side note, a very similar bug was fixed in >> commit 7295a996fdab ("platform/x86: dell-sysman: Fix reference leak"), >> so it seems that the bug was copied from that driver. >> >> Compile-tested only. >> >> Fixes: 1bcad8e510b2 ("platform/x86: think-lmi: Fix issues with >> duplicate attributes") >> Signed-off-by: Armin Wolf >> --- >> =C2=A0 drivers/platform/x86/think-lmi.c | 24 ++++++++++++++++++++---- >> =C2=A0 1 file changed, 20 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/platform/x86/think-lmi.c >> b/drivers/platform/x86/think-lmi.c >> index 4be6f28d4600..3a396b763c49 100644 >> --- a/drivers/platform/x86/think-lmi.c >> +++ b/drivers/platform/x86/think-lmi.c >> @@ -1344,6 +1344,24 @@ static void tlmi_release_attr(void) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kset_unregister(tlmi_priv.authentication= _kset); >> =C2=A0 } >> >> +static int tlmi_validate_setting_name(struct kset *attribute_kset, >> char *name) >> +{ >> +=C2=A0=C2=A0=C2=A0 struct kobject *duplicate; >> + >> +=C2=A0=C2=A0=C2=A0 if (!strcmp(name, "Reserved")) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -EINVAL; >> + >> +=C2=A0=C2=A0=C2=A0 duplicate =3D kset_find_obj(attribute_kset, name); >> +=C2=A0=C2=A0=C2=A0 if (duplicate) { >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pr_debug("Duplicate attribu= te name found - %s\n", name); >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* kset_find_obj() returns = a reference */ >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 kobject_put(duplicate); >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -EBUSY; >> +=C2=A0=C2=A0=C2=A0 } >> + >> +=C2=A0=C2=A0=C2=A0 return 0; >> +} >> + >> =C2=A0 static int tlmi_sysfs_init(void) >> =C2=A0 { >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int i, ret; >> @@ -1372,10 +1390,8 @@ static int tlmi_sysfs_init(void) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 continue; >> >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* check for dup= licate or reserved values */ >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (kset_find_obj(tlmi_priv= .attribute_kset, >> tlmi_priv.setting[i]->display_name) || >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 !st= rcmp(tlmi_priv.setting[i]->display_name, "Reserved")) { >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pr_= debug("duplicate or reserved attribute name found - >> %s\n", >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 tlmi_priv.setting[i]->display_name); >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (tlmi_validate_setting_n= ame(tlmi_priv.attribute_kset, >> + tlmi_priv.setting[i]->display_name) < 0) { >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 kfree(tlmi_priv.setting[i]->possible_values); >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 kfree(tlmi_priv.setting[i]); >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 tlmi_priv.setting[i] =3D NULL; >> -- >> 2.39.2 >> > > Reviewed-by: Mark Pearson > > Do you have any reports of our platforms where these are seen? If so > I'd like to get it fixed in FW too (and I can get it tested on HW if > that helps) > > Mark > No, i do not have any reports regarding this issue. I stumbled upon this b= ug by chance, after fixing a similar bug in dell-wmi-sysman. I suspect that the bug was copied from there to the other drivers, like th= ink-lmi and hp-bioscfg. Armin Wolf