Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965359AbdCWPdA (ORCPT ); Thu, 23 Mar 2017 11:33:00 -0400 Received: from mail-ua0-f194.google.com ([209.85.217.194]:34862 "EHLO mail-ua0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753202AbdCWPc4 (ORCPT ); Thu, 23 Mar 2017 11:32:56 -0400 MIME-Version: 1.0 In-Reply-To: <20170323150323.271584-1-arnd@arndb.de> References: <20170323150323.271584-1-arnd@arndb.de> From: Luca Tettamanti Date: Thu, 23 Mar 2017 16:32:44 +0100 Message-ID: Subject: Re: [PATCH] hwmon: asus_atk0110.c fix uninitialized data access To: Arnd Bergmann Cc: Jean Delvare , Guenter Roeck , linux-hwmon@vger.kernel.org, LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1386 Lines: 40 On 23 March 2017 at 16:03, Arnd Bergmann wrote: > The latest gcc-7 snapshot adds a warning to point out that when > atk_read_value_old or atk_read_value_new fails, we copy > uninitialized data into sensor->cached_value: > > drivers/hwmon/asus_atk0110.c: In function 'atk_input_show': > drivers/hwmon/asus_atk0110.c:651:26: error: 'value' may be used uninitialized in this function [-Werror=maybe-uninitialized] Ops, thanks for catching this. > > Adding an error check avoids this. All versions of the driver > are affected. > > Fixes: 2c03d07ad54d ("hwmon: Add Asus ATK0110 support") > Signed-off-by: Arnd Bergmann Reviewed-by: Luca Tettamanti > --- > drivers/hwmon/asus_atk0110.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c > index cccef87963e0..975c43d446f8 100644 > --- a/drivers/hwmon/asus_atk0110.c > +++ b/drivers/hwmon/asus_atk0110.c > @@ -646,6 +646,9 @@ static int atk_read_value(struct atk_sensor_data *sensor, u64 *value) > else > err = atk_read_value_new(sensor, value); > > + if (err) > + return err; > + > sensor->is_valid = true; > sensor->last_updated = jiffies; > sensor->cached_value = *value; > -- > 2.9.0 >