2014-06-30 03:17:49

by Li, ZhenHua

[permalink] [raw]
Subject: [PATCH 1/1] script/kconfig: remove a warning for menucofig

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 <[email protected]>
---
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;
--
2.0.0-rc0


2014-06-30 17:02:52

by Heinrich Schuchardt

[permalink] [raw]
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 <[email protected]>
> ---
> 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

2014-06-30 23:11:40

by Li, ZhenHua

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

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:[email protected]]
Sent: Tuesday, July 01, 2014 1:03 AM
To: Li, Zhen-Hua; Yann E. MORIN; [email protected]; [email protected]
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 <[email protected]>
> ---
> 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
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?

2014-07-14 06:26:49

by Li, ZhenHua

[permalink] [raw]
Subject: Re: [PATCH 1/1] script/kconfig: remove a warning for menucofig

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 <[email protected]>
>> ---
>> 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

2014-07-14 16:30:19

by Heinrich Schuchardt

[permalink] [raw]
Subject: Re: [PATCH 1/1] script/kconfig: remove a warning for menucofig

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 <[email protected]>

Best regards

Heinrich


> -----Original Message-----
> From: Heinrich Schuchardt [mailto:[email protected]]
> Sent: Tuesday, July 01, 2014 1:03 AM
> To: Li, Zhen-Hua; Yann E. MORIN; [email protected]; [email protected]
> 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 <[email protected]>
>> ---
>> 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
>

2014-07-15 08:55:26

by Li, ZhenHua

[permalink] [raw]
Subject: Re: [PATCH 1/1] script/kconfig: remove a warning for menucofig

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 <[email protected]>
>
> Best regards
>
> Heinrich
>
>
>> -----Original Message-----
>> From: Heinrich Schuchardt [mailto:[email protected]]
>> Sent: Tuesday, July 01, 2014 1:03 AM
>> To: Li, Zhen-Hua; Yann E. MORIN; [email protected];
>> [email protected]
>> 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 <[email protected]>
>>> ---
>>> 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
>>
>