2019-10-25 12:19:41

by Julia Lawall

[permalink] [raw]
Subject: [PATCH] apparmor: fix odd_ptr_err.cocci warnings (fwd)

Hello,

The change suggested by Coccinelle is not correct, but the original code
is not correct either because the argument to PTR_ERR should be a pointer,
not an integer.

julia

---------- Forwarded message ----------
Date: Thu, 24 Oct 2019 18:21:57 +0800
From: kbuild test robot <[email protected]>
To: [email protected]
Cc: Julia Lawall <[email protected]>
Subject: [PATCH] apparmor: fix odd_ptr_err.cocci warnings

CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Navid Emamdoost <[email protected]>

From: kbuild test robot <[email protected]>

security/apparmor/audit.c:199:5-11: inconsistent IS_ERR and PTR_ERR on line 202.

PTR_ERR should access the value just tested by IS_ERR

Semantic patch information:
There can be false positives in the patch case, where it is the call to
IS_ERR that is wrong.

Generated by: scripts/coccinelle/tests/odd_ptr_err.cocci

Fixes: 6f939f24599c ("apparmor: Fix use-after-free in aa_audit_rule_init")
CC: Navid Emamdoost <[email protected]>
Signed-off-by: kbuild test robot <[email protected]>
---

url: https://github.com/0day-ci/linux/commits/Navid-Emamdoost/apparmor-Fix-use-after-free-in-aa_audit_rule_init/20191024-123239
base: https://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git next-testing
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago

Please take the patch only if it's a positive warning. Thanks!

audit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/security/apparmor/audit.c
+++ b/security/apparmor/audit.c
@@ -199,7 +199,7 @@ int aa_audit_rule_init(u32 field, u32 op
if (IS_ERR(rule->label)) {
int err = rule->label;
aa_audit_rule_free(rule);
- return PTR_ERR(err);
+ return PTR_ERR(rule->label);
}

*vrule = rule;


2019-10-25 18:52:43

by Navid Emamdoost

[permalink] [raw]
Subject: Re: [PATCH] apparmor: fix odd_ptr_err.cocci warnings (fwd)

Hello,

I added Tyler to this conversation.
I believe v3 of the patch addresses this issue:
https://lore.kernel.org/patchwork/patch/1142523/


On Thu, Oct 24, 2019 at 6:28 AM Julia Lawall <[email protected]> wrote:
>
> Hello,
>
> The change suggested by Coccinelle is not correct, but the original code
> is not correct either because the argument to PTR_ERR should be a pointer,
> not an integer.
>
> julia
>
> ---------- Forwarded message ----------
> Date: Thu, 24 Oct 2019 18:21:57 +0800
> From: kbuild test robot <[email protected]>
> To: [email protected]
> Cc: Julia Lawall <[email protected]>
> Subject: [PATCH] apparmor: fix odd_ptr_err.cocci warnings
>
> CC: [email protected]
> In-Reply-To: <[email protected]>
> References: <[email protected]>
> TO: Navid Emamdoost <[email protected]>
>
> From: kbuild test robot <[email protected]>
>
> security/apparmor/audit.c:199:5-11: inconsistent IS_ERR and PTR_ERR on line 202.
>
> PTR_ERR should access the value just tested by IS_ERR
>
> Semantic patch information:
> There can be false positives in the patch case, where it is the call to
> IS_ERR that is wrong.
>
> Generated by: scripts/coccinelle/tests/odd_ptr_err.cocci
>
> Fixes: 6f939f24599c ("apparmor: Fix use-after-free in aa_audit_rule_init")
> CC: Navid Emamdoost <[email protected]>
> Signed-off-by: kbuild test robot <[email protected]>
> ---
>
> url: https://github.com/0day-ci/linux/commits/Navid-Emamdoost/apparmor-Fix-use-after-free-in-aa_audit_rule_init/20191024-123239
> base: https://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git next-testing
> :::::: branch date: 6 hours ago
> :::::: commit date: 6 hours ago
>
> Please take the patch only if it's a positive warning. Thanks!
>
> audit.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/security/apparmor/audit.c
> +++ b/security/apparmor/audit.c
> @@ -199,7 +199,7 @@ int aa_audit_rule_init(u32 field, u32 op
> if (IS_ERR(rule->label)) {
> int err = rule->label;
> aa_audit_rule_free(rule);
> - return PTR_ERR(err);
> + return PTR_ERR(rule->label);
> }
>
> *vrule = rule;



--
Navid.

2019-10-25 18:52:44

by Tyler Hicks

[permalink] [raw]
Subject: Re: [PATCH] apparmor: fix odd_ptr_err.cocci warnings (fwd)

On 2019-10-24 13:35:24, Navid Emamdoost wrote:
> Hello,
>
> I added Tyler to this conversation.
> I believe v3 of the patch addresses this issue:
> https://lore.kernel.org/patchwork/patch/1142523/

Yes, I agree. v3 is the fix.

Tyler

>
>
> On Thu, Oct 24, 2019 at 6:28 AM Julia Lawall <[email protected]> wrote:
> >
> > Hello,
> >
> > The change suggested by Coccinelle is not correct, but the original code
> > is not correct either because the argument to PTR_ERR should be a pointer,
> > not an integer.
> >
> > julia
> >
> > ---------- Forwarded message ----------
> > Date: Thu, 24 Oct 2019 18:21:57 +0800
> > From: kbuild test robot <[email protected]>
> > To: [email protected]
> > Cc: Julia Lawall <[email protected]>
> > Subject: [PATCH] apparmor: fix odd_ptr_err.cocci warnings
> >
> > CC: [email protected]
> > In-Reply-To: <[email protected]>
> > References: <[email protected]>
> > TO: Navid Emamdoost <[email protected]>
> >
> > From: kbuild test robot <[email protected]>
> >
> > security/apparmor/audit.c:199:5-11: inconsistent IS_ERR and PTR_ERR on line 202.
> >
> > PTR_ERR should access the value just tested by IS_ERR
> >
> > Semantic patch information:
> > There can be false positives in the patch case, where it is the call to
> > IS_ERR that is wrong.
> >
> > Generated by: scripts/coccinelle/tests/odd_ptr_err.cocci
> >
> > Fixes: 6f939f24599c ("apparmor: Fix use-after-free in aa_audit_rule_init")
> > CC: Navid Emamdoost <[email protected]>
> > Signed-off-by: kbuild test robot <[email protected]>
> > ---
> >
> > url: https://github.com/0day-ci/linux/commits/Navid-Emamdoost/apparmor-Fix-use-after-free-in-aa_audit_rule_init/20191024-123239
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git next-testing
> > :::::: branch date: 6 hours ago
> > :::::: commit date: 6 hours ago
> >
> > Please take the patch only if it's a positive warning. Thanks!
> >
> > audit.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > --- a/security/apparmor/audit.c
> > +++ b/security/apparmor/audit.c
> > @@ -199,7 +199,7 @@ int aa_audit_rule_init(u32 field, u32 op
> > if (IS_ERR(rule->label)) {
> > int err = rule->label;
> > aa_audit_rule_free(rule);
> > - return PTR_ERR(err);
> > + return PTR_ERR(rule->label);
> > }
> >
> > *vrule = rule;
>
>
>
> --
> Navid.

2019-10-25 18:52:44

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH] apparmor: fix odd_ptr_err.cocci warnings (fwd)



On Thu, 24 Oct 2019, Navid Emamdoost wrote:

> Hello,
>
> I added Tyler to this conversation.
> I believe v3 of the patch addresses this issue:
> https://lore.kernel.org/patchwork/patch/1142523/

It looks ok like that, thanks.

Please don't top post.

julia

>
>
> On Thu, Oct 24, 2019 at 6:28 AM Julia Lawall <[email protected]> wrote:
> >
> > Hello,
> >
> > The change suggested by Coccinelle is not correct, but the original code
> > is not correct either because the argument to PTR_ERR should be a pointer,
> > not an integer.
> >
> > julia
> >
> > ---------- Forwarded message ----------
> > Date: Thu, 24 Oct 2019 18:21:57 +0800
> > From: kbuild test robot <[email protected]>
> > To: [email protected]
> > Cc: Julia Lawall <[email protected]>
> > Subject: [PATCH] apparmor: fix odd_ptr_err.cocci warnings
> >
> > CC: [email protected]
> > In-Reply-To: <[email protected]>
> > References: <[email protected]>
> > TO: Navid Emamdoost <[email protected]>
> >
> > From: kbuild test robot <[email protected]>
> >
> > security/apparmor/audit.c:199:5-11: inconsistent IS_ERR and PTR_ERR on line 202.
> >
> > PTR_ERR should access the value just tested by IS_ERR
> >
> > Semantic patch information:
> > There can be false positives in the patch case, where it is the call to
> > IS_ERR that is wrong.
> >
> > Generated by: scripts/coccinelle/tests/odd_ptr_err.cocci
> >
> > Fixes: 6f939f24599c ("apparmor: Fix use-after-free in aa_audit_rule_init")
> > CC: Navid Emamdoost <[email protected]>
> > Signed-off-by: kbuild test robot <[email protected]>
> > ---
> >
> > url: https://github.com/0day-ci/linux/commits/Navid-Emamdoost/apparmor-Fix-use-after-free-in-aa_audit_rule_init/20191024-123239
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git next-testing
> > :::::: branch date: 6 hours ago
> > :::::: commit date: 6 hours ago
> >
> > Please take the patch only if it's a positive warning. Thanks!
> >
> > audit.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > --- a/security/apparmor/audit.c
> > +++ b/security/apparmor/audit.c
> > @@ -199,7 +199,7 @@ int aa_audit_rule_init(u32 field, u32 op
> > if (IS_ERR(rule->label)) {
> > int err = rule->label;
> > aa_audit_rule_free(rule);
> > - return PTR_ERR(err);
> > + return PTR_ERR(rule->label);
> > }
> >
> > *vrule = rule;
>
>
>
> --
> Navid.
>