* [PATCH] objtool: check: Fix NULL pointer dereference
@ 2020-03-31 0:20 Gustavo A. R. Silva
2020-03-31 22:04 ` Josh Poimboeuf
0 siblings, 1 reply; 3+ messages in thread
From: Gustavo A. R. Silva @ 2020-03-31 0:20 UTC (permalink / raw)
To: Josh Poimboeuf, Peter Zijlstra; +Cc: linux-kernel, Gustavo A. R. Silva
In case func is null, there is a null pointer dereference at 2029:
2029 WARN("%s uses BP as a scratch register",
2030 func->name);
Fix this by null-checking func.
Addresses-Coverity-ID: 1492002 ("Dereference after null check")
Fixes: c705cecc8431 ("objtool: Track original function across branches")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
tools/objtool/check.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index e3bb76358148..182cc48fa892 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -2025,7 +2025,7 @@ static int validate_return(struct symbol *func, struct instruction *insn, struct
return 1;
}
- if (state->bp_scratch) {
+ if (func && state->bp_scratch) {
WARN("%s uses BP as a scratch register",
func->name);
return 1;
--
2.26.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] objtool: check: Fix NULL pointer dereference
2020-03-31 0:20 [PATCH] objtool: check: Fix NULL pointer dereference Gustavo A. R. Silva
@ 2020-03-31 22:04 ` Josh Poimboeuf
2020-03-31 22:27 ` Gustavo A. R. Silva
0 siblings, 1 reply; 3+ messages in thread
From: Josh Poimboeuf @ 2020-03-31 22:04 UTC (permalink / raw)
To: Gustavo A. R. Silva; +Cc: Peter Zijlstra, linux-kernel
On Mon, Mar 30, 2020 at 07:20:40PM -0500, Gustavo A. R. Silva wrote:
> In case func is null, there is a null pointer dereference at 2029:
>
> 2029 WARN("%s uses BP as a scratch register",
> 2030 func->name);
>
> Fix this by null-checking func.
>
> Addresses-Coverity-ID: 1492002 ("Dereference after null check")
> Fixes: c705cecc8431 ("objtool: Track original function across branches")
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> tools/objtool/check.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/objtool/check.c b/tools/objtool/check.c
> index e3bb76358148..182cc48fa892 100644
> --- a/tools/objtool/check.c
> +++ b/tools/objtool/check.c
> @@ -2025,7 +2025,7 @@ static int validate_return(struct symbol *func, struct instruction *insn, struct
> return 1;
> }
>
> - if (state->bp_scratch) {
> + if (func && state->bp_scratch) {
> WARN("%s uses BP as a scratch register",
> func->name);
> return 1;
We should still do the warning even if there's no func. I'll make a
slightly different patch which unconditionally uses WARN_FUNC().
I'll give you Reported-by credit and keep the coverity tag. Thanks!
--
Josh
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] objtool: check: Fix NULL pointer dereference
2020-03-31 22:04 ` Josh Poimboeuf
@ 2020-03-31 22:27 ` Gustavo A. R. Silva
0 siblings, 0 replies; 3+ messages in thread
From: Gustavo A. R. Silva @ 2020-03-31 22:27 UTC (permalink / raw)
To: Josh Poimboeuf; +Cc: Peter Zijlstra, linux-kernel
On 3/31/20 17:04, Josh Poimboeuf wrote:
> On Mon, Mar 30, 2020 at 07:20:40PM -0500, Gustavo A. R. Silva wrote:
>> In case func is null, there is a null pointer dereference at 2029:
>>
>> 2029 WARN("%s uses BP as a scratch register",
>> 2030 func->name);
>>
>> Fix this by null-checking func.
>>
>> Addresses-Coverity-ID: 1492002 ("Dereference after null check")
>> Fixes: c705cecc8431 ("objtool: Track original function across branches")
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>> ---
>> tools/objtool/check.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/objtool/check.c b/tools/objtool/check.c
>> index e3bb76358148..182cc48fa892 100644
>> --- a/tools/objtool/check.c
>> +++ b/tools/objtool/check.c
>> @@ -2025,7 +2025,7 @@ static int validate_return(struct symbol *func, struct instruction *insn, struct
>> return 1;
>> }
>>
>> - if (state->bp_scratch) {
>> + if (func && state->bp_scratch) {
>> WARN("%s uses BP as a scratch register",
>> func->name);
>> return 1;
>
> We should still do the warning even if there's no func. I'll make a
> slightly different patch which unconditionally uses WARN_FUNC().
>
Awesome. :)
> I'll give you Reported-by credit and keep the coverity tag. Thanks!
>
Great.
Thanks
--
Gustavo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-03-31 22:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-31 0:20 [PATCH] objtool: check: Fix NULL pointer dereference Gustavo A. R. Silva
2020-03-31 22:04 ` Josh Poimboeuf
2020-03-31 22:27 ` Gustavo A. R. Silva
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.