RE: [PATCH 1/1] script/kconfig: remove a warning for menucofig

From: Li, Zhen-Hua
Date: Mon Jun 30 2014 - 19:11:43 EST


When malloc for jump,
if (head && location) {
jump = xmalloc(sizeof(struct jump_key));
....
}
And here it is used:
if (head && location && menu == location)
jump->offset = strlen(r->s);


So I think when jump is used, it must not be NULL; then !=NULL is not needed.
-----Original Message-----
From: Heinrich Schuchardt [mailto:xypron.glpk@xxxxxx]
Sent: Tuesday, July 01, 2014 1:03 AM
To: Li, Zhen-Hua; Yann E. MORIN; linux-kbuild@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH 1/1] script/kconfig: remove a warning for menucofig

On 30.06.2014 05:16, Li, Zhen-Hua wrote:
> There is a warning when run "make menuconfig".
>
> scripts/kconfig/menu.c: In function âget_symbol_strâ:
> scripts/kconfig/menu.c:591:18: warning: âjumpâ may be used uninitialized in
> this function [-Wmaybe-uninitialized]
> jump->offset = strlen(r->s);
> ^
> scripts/kconfig/menu.c:551:19: note: âjumpâ was declared here
> struct jump_key *jump;
> ^
>
> It is because the compiler think "jump" is not initialized, though in fact
> it is already initialized.
>
> Signed-off-by: Li, Zhen-Hua <zhen-hual@xxxxxx>
> ---
> scripts/kconfig/menu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
> index a26cc5d..584e0fc 100644
> --- a/scripts/kconfig/menu.c
> +++ b/scripts/kconfig/menu.c
> @@ -548,7 +548,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;
>
Hello Zhen-Hua,

the patch looks incomplete to me. A check
jump != NULL
should be added before accessing parts of structure jump_key.

Best regards

Heinrich Schuchardt