diff mbox

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

Message ID 1404098187-9638-1-git-send-email-zhen-hual@hp.com (mailing list archive)
State New, archived
Headers show

Commit Message

Li, Zhen-Hua June 30, 2014, 3:16 a.m. UTC
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(-)

Comments

Heinrich Schuchardt June 30, 2014, 5:02 p.m. UTC | #1
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
Li, Zhen-Hua June 30, 2014, 11:10 p.m. UTC | #2
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
Li, Zhen-Hua July 14, 2014, 6:25 a.m. UTC | #3
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
Heinrich Schuchardt July 14, 2014, 4:30 p.m. UTC | #4
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
Li, Zhen-Hua July 15, 2014, 8:53 a.m. UTC | #5
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 mbox

Patch

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;