From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758443AbcJYP42 (ORCPT ); Tue, 25 Oct 2016 11:56:28 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:49868 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752744AbcJYP40 (ORCPT ); Tue, 25 Oct 2016 11:56:26 -0400 From: Arnd Bergmann To: Jonathan Cameron Cc: Arnd Bergmann , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Matt Ranostay , sayli karnik , Wei Yongjun , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] iio: maxim_thermocouple: detect invalid storage size in read() Date: Tue, 25 Oct 2016 17:55:04 +0200 Message-Id: <20161025155538.38037-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:qBHym+PvXwQbZiR05Q5oRAaGdC8mvVbWuXo+c42MrHJlodY+T4D icywYm8nDHXQkLPIXH2SNPHWGFa4C6v/7hd7oKvDdMbI7Xle451bcPQUTWcBbmU7n5GLWcx STVoFl/KVlAuko6f4ZxV5KMIeIe2tI3BtIogTVyDQGRXfZKXV1SCFGWUaEX8Jen6PTJZ4uM Y+PzrhzMkgjxkR6IGUGAA== X-UI-Out-Filterresults: notjunk:1;V01:K0:pskujuNeIRQ=:P35pyX2Os2BQ00qbRjUMUG HAf3mMT/zkTJCnj3o62lyDMSGYp33Tpt1+TKTsNVGhhi7IaU+Y9qDsYg3zjLbwbpJoXfe6cvV w+9doGL4qi7Qz7mu7m3fog2G1cZlJIL2UmwjPx7vEecWX6qkdMyBdw7BFIMKg3hOIKwa7U4f6 96MIlD3i17gJNLr25Nt+UqPJh/jKkZe1ne7eJlMlAKzs8VNlqr3WXXwI8o+RrbbdAxdDLv8h3 oFIPZxiltf63LxJjvQEbLjuaClmXsZwB7qntWXkpjV8zSXirLuZ6FnyzUqkHXJzU5d7XHzxj+ wwbTsxNmlSFcrxA4lAML6E5nr+ALGB+U+8XrC7uZGgzg1pVox2nXHk2E6OQvOPKpfKsdaTJ2b pU/yM0jjd8kjS0GVJDd3NyhK4Z3jn51N5O9IHLDU+gJUIwCN/NFP8a/KIOavzX/iH3/81+6QG Wy3StZH9ha6kUjc9eifZNFLFLSHA1H0a50xRcKOyXnd+R+fF+euYrhKpApTXKMkhbMHTvSZb3 sd7G8JXTYwj7HTbsALkLTSdhwDV9AKJ999PKk2WFSDBZl04m6dtxl9TOE/n/jHEfs1QDU/2G7 os4u0JJhkqrMX57H44grIPmDMFzUdT1AkCWtzUKg5lekRNFWdXrwcSsVwGtjmAml5wPmAN4gM JKzVBW+0TIH/Wq3RmsjHb2hvD3j79/KOvM2NeqjP+whhLdr4TohvsgHn++In2flRrkbw= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As found by gcc -Wmaybe-uninitialized, having a storage_bytes value other than 2 or 4 will result in undefined behavior: drivers/iio/temperature/maxim_thermocouple.c: In function 'maxim_thermocouple_read': drivers/iio/temperature/maxim_thermocouple.c:141:5: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized] This probably cannot happen, but returning -EINVAL here is appropriate and makes gcc happy and the code more robust. Fixes: 231147ee77f3 ("iio: maxim_thermocouple: Align 16 bit big endian value of raw reads") Signed-off-by: Arnd Bergmann --- drivers/iio/temperature/maxim_thermocouple.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iio/temperature/maxim_thermocouple.c b/drivers/iio/temperature/maxim_thermocouple.c index 066161a4bccd..f962f31a5eb2 100644 --- a/drivers/iio/temperature/maxim_thermocouple.c +++ b/drivers/iio/temperature/maxim_thermocouple.c @@ -136,6 +136,8 @@ static int maxim_thermocouple_read(struct maxim_thermocouple_data *data, ret = spi_read(data->spi, (void *)&buf32, storage_bytes); *val = be32_to_cpu(buf32); break; + default: + ret = -EINVAL; } if (ret) -- 2.9.0