From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753867AbcCRMlW (ORCPT ); Fri, 18 Mar 2016 08:41:22 -0400 Received: from mail-io0-f169.google.com ([209.85.223.169]:35666 "EHLO mail-io0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751514AbcCRMlU convert rfc822-to-8bit (ORCPT ); Fri, 18 Mar 2016 08:41:20 -0400 MIME-Version: 1.0 Date: Fri, 18 Mar 2016 13:41:19 +0100 X-Google-Sender-Auth: EF32dnU8scnerEfcEZ1ETHzvwqs Message-ID: Subject: =?UTF-8?Q?staging=3A_most=3A_warning=3A_=E2=80=98mbo=E2=80=99_may_be_used_uninit?= =?UTF-8?Q?ialized_in_this_function?= From: Geert Uytterhoeven To: Christian Gromm , Greg KH Cc: driverdevel , Linux Kernel Mailing List Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 18, 2016 at 6:42 AM, Linux Kernel Mailing List wrote: > Web: https://git.kernel.org/torvalds/c/f45b0fba43f415f69982df743dfa9b5d1b57785e > Commit: f45b0fba43f415f69982df743dfa9b5d1b57785e > Parent: b3c9f3c56c41cbebe7804b48ba8e6e484509c2c0 > Refname: refs/heads/master > Author: Christian Gromm > AuthorDate: Tue Dec 22 10:53:06 2015 +0100 > Committer: Greg Kroah-Hartman > CommitDate: Sun Feb 7 17:34:58 2016 -0800 > > staging: most: remove stacked_mbo > > This patch makes use of kfifo_peek and kfifo_skip, which renders the > variable stacked_mbo useless. It is therefore removed. > > Signed-off-by: Christian Gromm > Signed-off-by: Greg Kroah-Hartman > --- > drivers/staging/most/aim-cdev/cdev.c | 16 +++------------- > 1 file changed, 3 insertions(+), 13 deletions(-) > > diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c > index d9c3f56..0ee2f08 100644 > --- a/drivers/staging/most/aim-cdev/cdev.c > +++ b/drivers/staging/most/aim-cdev/cdev.c > @@ -249,11 +246,7 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset) > struct aim_channel *c = filp->private_data; > > mutex_lock(&c->io_mutex); > - if (c->stacked_mbo) { > - mbo = c->stacked_mbo; > - goto start_copy; > - } > - while ((!kfifo_out(&c->fifo, &mbo, 1)) && (c->dev)) { > + while (c->dev && !kfifo_peek(&c->fifo, &mbo)) { drivers/staging/most/aim-cdev/cdev.c:241: warning: ‘mbo’ may be used uninitialized in this function >>From looking at the code, it's not obvious to me if this is a false positive or not. Can it happen that mbo is not initialized fully, e.g. if less than sizeof(mbo) bytes have been read from the kfifo? Other callers initialize the pointer to NULL, and check the returned length. > mutex_unlock(&c->io_mutex); > if (filp->f_flags & O_NONBLOCK) > return -EAGAIN; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds