From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39D4821771B for ; Thu, 14 May 2026 03:25:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778729157; cv=none; b=CiohUnDFnXOXB+BrN1HfzuCbBRXlCNAhUUW3ThwfWj68dTpybBqy2JWRnVH/A5LjAPiqhvaFMd04mZzqzX4RzPXWK5rJeYUTOMBCSGkGk3NpeYhgecCgcIjZgFpz3mqpJDODrnrh7WP7FOLdcafOm8/5jijiP2URGjYjPA1RZH4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778729157; c=relaxed/simple; bh=YuFK9wdcDVTR1B5I2wiGUi3OJLXgcQkJRqiuy2EM/oU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=HxQPVKPo2mwBi+s7EyiXDqaaFDXB9OmmxkMYJECWgCJ7wfHpkr5sZsbPGh5Fkycf/IfNY0FZzi1V8a5LvGpJmMg9B/s0sHolANN93e91pI6lznbNeljkhZZ0dEYJG3XMVPo1iUTZAsX3C0k79fr1a7AjtSaqR50YwFoxbG6BRfE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JG2JNIKo; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JG2JNIKo" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2b7d3ecc10dso73309285ad.2 for ; Wed, 13 May 2026 20:25:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778729155; x=1779333955; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=nf839P5Nup0rXclHDaobJzL5BL+On47x7FRSebFUKm0=; b=JG2JNIKofqa9wiJkDi90z2ek8oH/uGeDtoan8CUScmNvvLmP/TvQH+LXf76YUxjm23 BX68+aQpezEhEnfnsAI2sd/aMh0jXsuUJY9goMfmB6NU83RmAjoHQub2khu//MoaaVbz BVHWvTCSXCxn5xxng9mKFZ1CYPs8N2CM2nc7Zg1pQqtBFW1kM1pfouQI6aDrtgejt6ae zRC6RJ4rBGRfCtuOr3Xr/nxter7ESRRvRsZ6O6uwMy9wiNJxZr+kGrEs5eo+E76Qo8HJ n2BS1mFMxkDWPluhlEkYxl/jMa6VIKKmQisPa/N/UJ+HIW/y0oPdB0AgZz258V3RDWdd 1xsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778729155; x=1779333955; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=nf839P5Nup0rXclHDaobJzL5BL+On47x7FRSebFUKm0=; b=mDraI+YbrZRRj4V3IJhdUjYsa1wpkrAXOEfEUgJVKsOaNXOj3UsBkqvqhqt6kqOPdn XVCCHHnXZF9EKh226/IC3CtZLh4PZdaWu+ilARIj/HvW0GDCQHbRZLYM2DpNRprfoIU8 E8HfeT/69Qsg+7taJvo4O9S++T2wKMbvZd8Odv09p6UKCsZIsCbMlVUSfpuWJKV4M29t LC28KGYlreOyRe4+/85T87qDzEGozfZG9MdR/x8votGRrsAgjc/tbUZY8xKSIlIlhPZB QaoUI7bbmkmghSf4TCOOPH7WwOYkOQpQeakYNnrRIuxGt5WMRqQU9sQHR7Jkh3yOB1pb P3RA== X-Forwarded-Encrypted: i=1; AFNElJ+bs6WRMOCG5UmxKV7KMxSyRAfnRJRFhdgkri3AFHVX2cIclB/ruuiEsFok82C3Cix0yzuC6qhZ5XV+Mhw=@vger.kernel.org X-Gm-Message-State: AOJu0YzS5bD7v82jQqJGsTxadY/9CunCw5Xg8mBzvZlLU8EsMK15PSag 3mb0bAPC3OYsgrBKlpJAAt6Y0i5KI0T9yKRjOEqPqNwp+PVE2z1hrl3z X-Gm-Gg: Acq92OE5c9Bl7wYdtHV/xHcBH3LC6UZ+UrhkDzE0im3pCfEOYk52zsie9aAOMxPjDJ3 +jH5KHACJRSkzyo2HfyCmmlUX3Jp+RV6+yTOop9CAeOfv8SmgEfMZXDmFIzXvkymDRiwT/lmcSc Q3jPnMFwTvTnqpK3XoqrlBj6ThZ7n0/iKNkwVIV5ncshhQh/9QJIGkk/UOm5F5EumvDItMWjKRV 6e6HxN2ueRsav14AQf9ScbuBrSnSpRlxS09oyOggN0zE1+w0SgmSKzWQYu3ttVg0aBZJl+yZMmc 9fZBuRjyS/R/Ca6OfIGOeQzjgm+G5aNAPpl25Jw2CcVcEGWHEJ8eLzpNwzjGmOxCt1bFxYkM1Ud ufCsHBPiaTLqIbzJP+OWdGB/Xq3kZDcScG8m8qt8YBD21jB3pxRNxQdceH88Og1YUaDOCG9sQxb gU+suPSUTKOYdptAstgIWbQm+rv007Ap67/uRQl8c9Ud8oEhyDpEEDcMWUNQ== X-Received: by 2002:a17:903:2654:b0:2bc:f1ef:2e65 with SMTP id d9443c01a7336-2bd275b6074mr46602185ad.17.1778729155326; Wed, 13 May 2026 20:25:55 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5bd60275sm7102835ad.7.2026.05.13.20.25.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 20:25:54 -0700 (PDT) Sender: Guenter Roeck Date: Wed, 13 May 2026 20:25:53 -0700 From: Guenter Roeck To: Kean Cc: Mark Pearson , linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3] hwmon: lenovo-ec-sensors: Fix NULL pointer dereference when DMI match fails Message-ID: References: <20260514011411.4167069-1-rh_king@163.com> <20260514011411.4167069-3-rh_king@163.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260514011411.4167069-3-rh_king@163.com> On Thu, May 14, 2026 at 09:14:10AM +0800, Kean wrote: > dmi_first_match() returns NULL if the running system does not match any > entry in thinkstation_dmi_table. Without a NULL check, the subsequent > dmi_id->driver_data access dereferences a NULL pointer, causing a kernel > oops or panic. > > Add a NULL check and return -ENODEV to gracefully fail the probe when > the driver is loaded on an unsupported platform. > > Signed-off-by: Kean > > Reviewed-by: Mark Pearson ERROR: trailing whitespace #104: FILE: drivers/hwmon/lenovo-ec-sensors.c:540: +^Iif ((inb_p(MCHP_EMI0_EC_DATA_BYTE0) != 'M') || $ ERROR: trailing whitespace #105: FILE: drivers/hwmon/lenovo-ec-sensors.c:541: +^I (inb_p(MCHP_EMI0_EC_DATA_BYTE1) != 'C') || $ total: 2 errors, 0 warnings, 0 checks, 12 lines checked > --- > drivers/hwmon/lenovo-ec-sensors.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/hwmon/lenovo-ec-sensors.c b/drivers/hwmon/lenovo-ec-sensors.c > index a32b1f2c6a3a..b0f2a04ce679 100644 > --- a/drivers/hwmon/lenovo-ec-sensors.c > +++ b/drivers/hwmon/lenovo-ec-sensors.c > @@ -546,6 +546,8 @@ static int lenovo_ec_probe(struct platform_device *pdev) > } > > dmi_id = dmi_first_match(thinkstation_dmi_table); > + if (!dmi_id) > + return -ENODEV; > > switch ((long)dmi_id->driver_data) { > case 0: