From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934748AbcA1SsW (ORCPT ); Thu, 28 Jan 2016 13:48:22 -0500 Received: from youngberry.canonical.com ([91.189.89.112]:56322 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755553AbcA1SsU (ORCPT ); Thu, 28 Jan 2016 13:48:20 -0500 Subject: Re: [PATCH] tty/metag_da: initialize number_written to zero To: James Hogan References: <1453851445-4645-1-git-send-email-colin.king@canonical.com> <20160127114206.GB20777@jhogan-linux.le.imgtec.org> Cc: Greg Kroah-Hartman , Jiri Slaby , linux-metag@vger.kernel.org, linux-kernel@vger.kernel.org From: Colin Ian King Message-ID: <56AA6271.1070108@canonical.com> Date: Thu, 28 Jan 2016 18:48:17 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160127114206.GB20777@jhogan-linux.le.imgtec.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 27/01/16 11:42, James Hogan wrote: > Hi Colin, > > On Tue, Jan 26, 2016 at 11:37:25PM +0000, Colin King wrote: >> From: Colin Ian King >> >> number_written is not initialized, so it can be any value. In the >> case where dport->xmit_cnt is zero, number_written is not set >> and subsequent accesses to it will be reading a garbage value. > > the only subsequent accesses when dport->xmit_cnt == 0 are: > > /* if we've made more data available, wake up tty */ > if (count && number_written) { > > and: > > /* did the write fail? */ > return count && !number_written; > > but dport->xmit_cnt == 0 implies count == 0, so number_written shouldn 't > be used, and both will evaluate to false regardless of the uninitialis ed > value, so it looks fine as it is to me. > > Is this tripping up some static analysis tool or something? It was found using cppcheck, namely: [drivers/tty/metag_da.c:269]: (error) Uninitialized variable: number_wri tten > > Thanks > James > >> Fix this by initializing it to zero for the case when >> dport->xmit_count is zero. >> >> Signed-off-by: Colin Ian King >> --- >> drivers/tty/metag_da.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/tty/metag_da.c b/drivers/tty/metag_da.c >> index 9325262..3da89c1 100644 >> --- a/drivers/tty/metag_da.c >> +++ b/drivers/tty/metag_da.c >> @@ -230,7 +230,7 @@ static int put_channel_data(unsigned int chan) >> { >> struct dashtty_port *dport; >> struct tty_struct *tty; >> - int number_written; >> + int number_written = 0; >> unsigned int count = 0; >> >> dport = &dashtty_ports[chan]; >> -- >> 2.7.0.rc3 >> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWqmJvAAoJEGjCh9/GqAImiFMP/R9IVGMLUlhGVrk+nTxg5ojU ZAlaVWhClt08IGHJULMfSvXXwDe2k7Y9AybUD0DXB1eZvcNX8Grbs9knmQygyl+5 YETHTpYRbDutcH9Ru0wNAAclctMM+iGs0SRCfSsNvPA4OqpQVzZEsiu6QoyAxeCW xsNkbO0NA15+A+af0jz/WZYAkibQ7S3ijco+O9ttR99aaRM8eMrZJHDdTzozAq60 ZnnQ4VMm287l0Y8Bh94T1E0+3WuonQeCLAM+Wxc43c4vH/Q2lLhxV4TvsmXJTFoQ WZghBLtkf9Y792wx3uDzLQGBBP4XSSwTtchrhIv/q2mgeyCqFYONvM+Vk8uXTtYp msRbdR45FB1blG8Asw5gqbMfiqYc0TpHXBmV1KeActYcBOYD9p7kE+pyFism9tK5 7sFb1ud3HnCCjJ31tCKq8Sqdy5UjsUtL46Avn1NBoQqxqCMLMWoEd/kbvMm8xJez 50s6cTIwpB6HKFva3FogUOgZN6fFn4vIegkn9zLtUab8G8ny665M9FyFIhmaS88C PLjDOnyNzMs1nIReR0Eiw50V9a3ObPnN5zwZ45YgbGeHn9hYMBPWZb3swzovx6JP d5t1zYZKBYVuIAmBKBM6LusfkDGTeD4yRNWtASmryD85AGNYsW09GgV+7NXE+tUf xSHwQwslznAKKITlP/MZ =sini -----END PGP SIGNATURE-----