Message ID | 1404098187-9638-1-git-send-email-zhen-hual@hp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@hp.com> > --- > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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@gmx.de] Sent: Tuesday, July 01, 2014 1:03 AM To: Li, Zhen-Hua; Yann E. MORIN; linux-kbuild@vger.kernel.org; linux-kernel@vger.kernel.org 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@hp.com> > --- > 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
Any update? On 07/01/2014 01:02 AM, Heinrich Schuchardt wrote: > 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@hp.com> >> --- >> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 01.07.2014 01:10, Li, Zhen-Hua wrote: > 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. I tested the patch against v13.6-rc5. It fixes the problem with the warning. You can add Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Best regards Heinrich > -----Original Message----- > From: Heinrich Schuchardt [mailto:xypron.glpk@gmx.de] > Sent: Tuesday, July 01, 2014 1:03 AM > To: Li, Zhen-Hua; Yann E. MORIN; linux-kbuild@vger.kernel.org; linux-kernel@vger.kernel.org > 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@hp.com> >> --- >> 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 > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Heinrich, Thank you very much for reviewing. But seems the maintainer will not accept it. Zhenhua On 07/15/2014 12:30 AM, Heinrich Schuchardt wrote: > On 01.07.2014 01:10, Li, Zhen-Hua wrote: >> 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. > > I tested the patch against v13.6-rc5. It fixes the problem with the > warning. > > You can add > > Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > > Best regards > > Heinrich > > >> -----Original Message----- >> From: Heinrich Schuchardt [mailto:xypron.glpk@gmx.de] >> Sent: Tuesday, July 01, 2014 1:03 AM >> To: Li, Zhen-Hua; Yann E. MORIN; linux-kbuild@vger.kernel.org; >> linux-kernel@vger.kernel.org >> 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@hp.com> >>> --- >>> 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 >> > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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;
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@hp.com> --- scripts/kconfig/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)