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

From: Navid Emamdoost
Date: Thu Oct 24 2019 - 14:35:38 EST


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 <julia.lawall@xxxxxxx> 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 <lkp@xxxxxxxxx>
> To: kbuild@xxxxxxxxxxxx
> Cc: Julia Lawall <julia.lawall@xxxxxxx>
> Subject: [PATCH] apparmor: fix odd_ptr_err.cocci warnings
>
> CC: kbuild-all@xxxxxxxxxxxx
> In-Reply-To: <20191021152348.3906-1-navid.emamdoost@xxxxxxxxx>
> References: <20191021152348.3906-1-navid.emamdoost@xxxxxxxxx>
> TO: Navid Emamdoost <navid.emamdoost@xxxxxxxxx>
>
> From: kbuild test robot <lkp@xxxxxxxxx>
>
> 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 <navid.emamdoost@xxxxxxxxx>
> Signed-off-by: kbuild test robot <lkp@xxxxxxxxx>
> ---
>
> 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.