2013-10-28 01:36:43

by Christian Kujau

[permalink] [raw]
Subject: [PATCH] scripts/kconfig/menu.c: warning: jump may be used uninitialized in this function

While doing "make oldconfig" on 3.12-rc7 with gcc-4.7.2 (Debian), the
following warning is printed:

HOSTCC scripts/kconfig/zconf.tab.o
In file included from scripts/kconfig/zconf.tab.c:2537:0:
/usr/local/src/linux-git/scripts/kconfig/menu.c: In function ‘get_symbol_str’:
/usr/local/src/linux-git/scripts/kconfig/menu.c:586:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/usr/local/src/linux-git/scripts/kconfig/menu.c:547:19: note: ‘jump’ was declared here

The following patch seems to fix that:

Signed-off-by: Christian Kujau <[email protected]>

diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index c1d5320..23b1827 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -544,7 +544,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
{
int i, j;
struct menu *submenu[8], *menu, *location = NULL;
- struct jump_key *jump;
+ struct jump_key *jump = NULL;

str_printf(r, _("Prompt: %s\n"), _(prop->text));
menu = prop->menu->parent;


Christian.
--
BOFH excuse #177:

sticktion


2013-10-28 02:03:02

by Christian Kujau

[permalink] [raw]
Subject: Re: [PATCH] scripts/kconfig/menu.c: warning: jump may be used uninitialized in this function

On Sun, 27 Oct 2013 at 18:28, Christian Kujau wrote:
> While doing "make oldconfig" on 3.12-rc7 with gcc-4.7.2 (Debian), the
> following warning is printed:
>
> HOSTCC scripts/kconfig/zconf.tab.o
> In file included from scripts/kconfig/zconf.tab.c:2537:0:
> /usr/local/src/linux-git/scripts/kconfig/menu.c: In function ‘get_symbol_str’:
> /usr/local/src/linux-git/scripts/kconfig/menu.c:586:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
> /usr/local/src/linux-git/scripts/kconfig/menu.c:547:19: note: ‘jump’ was declared here

Grrr, only after I sent this message I found this was reported in
September already by Madhavan Srinivasan: https://lkml.org/lkml/2013/9/19/24

Does anybody know the state of this fix?

Thanks,
Christian.

> The following patch seems to fix that:
>
> Signed-off-by: Christian Kujau <[email protected]>
>
> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
> index c1d5320..23b1827 100644
> --- a/scripts/kconfig/menu.c
> +++ b/scripts/kconfig/menu.c
> @@ -544,7 +544,7 @@ static void get_prompt_str(struct gstr *r, struct property *prop,
> {
> int i, j;
> struct menu *submenu[8], *menu, *location = NULL;
> - struct jump_key *jump;
> + struct jump_key *jump = NULL;
>
> str_printf(r, _("Prompt: %s\n"), _(prop->text));
> menu = prop->menu->parent;
>
>
> Christian.
> --
> BOFH excuse #177:
>
> sticktion
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

--
BOFH excuse #449:

greenpeace free'd the mallocs

2013-10-29 17:54:02

by Yann E. MORIN

[permalink] [raw]
Subject: Re: [PATCH] scripts/kconfig/menu.c: warning: jump may be used uninitialized in this function

Christian, All,

On 2013-10-27 19:02 -0700, Christian Kujau spake thusly:
> On Sun, 27 Oct 2013 at 18:28, Christian Kujau wrote:
> > While doing "make oldconfig" on 3.12-rc7 with gcc-4.7.2 (Debian), the
> > following warning is printed:
> >
> > HOSTCC scripts/kconfig/zconf.tab.o
> > In file included from scripts/kconfig/zconf.tab.c:2537:0:
> > /usr/local/src/linux-git/scripts/kconfig/menu.c: In function ‘get_symbol_str’:
> > /usr/local/src/linux-git/scripts/kconfig/menu.c:586:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
> > /usr/local/src/linux-git/scripts/kconfig/menu.c:547:19: note: ‘jump’ was declared here
>
> Grrr, only after I sent this message I found this was reported in
> September already by Madhavan Srinivasan: https://lkml.org/lkml/2013/9/19/24
>
> Does anybody know the state of this fix?

The solution was to properly comment that this was a gcc issue, in that
this is a spurious error, does not appear in previous gcc versions, and
has been fixed in later gcc versions.

Setting 'jump' to NULL may hide reall issues in case the code is changed
in the future, so it is not appropriate a fix. Hence why the previously-
submitted patches were not applied.

I'll take this on me to properly fix this. Thanks for the heads up.

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'

2013-10-30 05:33:34

by Madhavan Srinivasan

[permalink] [raw]
Subject: Re: [PATCH] scripts/kconfig/menu.c: warning: jump may be used uninitialized in this function

On Tuesday 29 October 2013 11:23 PM, Yann E. MORIN wrote:
> Christian, All,
>
> On 2013-10-27 19:02 -0700, Christian Kujau spake thusly:
>> On Sun, 27 Oct 2013 at 18:28, Christian Kujau wrote:
>>> While doing "make oldconfig" on 3.12-rc7 with gcc-4.7.2 (Debian), the
>>> following warning is printed:
>>>
>>> HOSTCC scripts/kconfig/zconf.tab.o
>>> In file included from scripts/kconfig/zconf.tab.c:2537:0:
>>> /usr/local/src/linux-git/scripts/kconfig/menu.c: In function ‘get_symbol_str’:
>>> /usr/local/src/linux-git/scripts/kconfig/menu.c:586:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
>>> /usr/local/src/linux-git/scripts/kconfig/menu.c:547:19: note: ‘jump’ was declared here
>>
>> Grrr, only after I sent this message I found this was reported in
>> September already by Madhavan Srinivasan: https://lkml.org/lkml/2013/9/19/24
>>
>> Does anybody know the state of this fix?
>
My bad, somehow this slipped from my todo list.

> The solution was to properly comment that this was a gcc issue, in that
> this is a spurious error, does not appear in previous gcc versions, and
> has been fixed in later gcc versions.
>
I also notice this with gcc 4.8.1 (20131002) build.

> Setting 'jump' to NULL may hide reall issues in case the code is changed
> in the future, so it is not appropriate a fix. Hence why the previously-
> submitted patches were not applied.
>
> I'll take this on me to properly fix this. Thanks for the heads up.
>
> Regards,
> Yann E. MORIN.
>