2018-07-14 16:20:00

by Colin King

[permalink] [raw]
Subject: [PATCH] apparmor: remove redundant pointer 'info'

From: Colin Ian King <[email protected]>

Pointer 'info' is being assigned but is never used hence it is
redundant and can be removed.

Cleans up clang warning:
warning: variable 'info' set but not used [-Wunused-but-set-variable]

Signed-off-by: Colin Ian King <[email protected]>
---
security/apparmor/domain.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c
index 098d546d8253..410d9ce09861 100644
--- a/security/apparmor/domain.c
+++ b/security/apparmor/domain.c
@@ -1006,7 +1006,6 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
const char *name, bool sibling)
{
struct aa_profile *root, *hat = NULL;
- const char *info = NULL;
int error = 0;

if (sibling && PROFILE_IS_HAT(profile)) {
@@ -1014,7 +1013,6 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
} else if (!sibling && !PROFILE_IS_HAT(profile)) {
root = aa_get_profile(profile);
} else {
- info = "conflicting target types";
error = -EPERM;
goto audit;
}
@@ -1025,10 +1023,8 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
if (COMPLAIN_MODE(profile)) {
hat = aa_new_null_profile(profile, true, name,
GFP_KERNEL);
- if (!hat) {
- info = "failed null profile create";
+ if (!hat)
error = -ENOMEM;
- }
}
}
aa_put_profile(root);
--
2.17.1



2018-07-20 10:32:54

by John Johansen

[permalink] [raw]
Subject: Re: [PATCH] apparmor: remove redundant pointer 'info'

On 07/14/2018 09:19 AM, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> Pointer 'info' is being assigned but is never used hence it is
> redundant and can be removed.
>
> Cleans up clang warning:
> warning: variable 'info' set but not used [-Wunused-but-set-variable]
>
NAK,

real problem wrong fix, instead of deleting the additional context info
we need to be auditing it

diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c
index 098d546d8253..08c88de0ffda 100644
--- a/security/apparmor/domain.c
+++ b/security/apparmor/domain.c
@@ -1036,7 +1036,7 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
audit:
aa_audit_file(profile, &nullperms, OP_CHANGE_HAT, AA_MAY_CHANGEHAT,
name, hat ? hat->base.hname : NULL,
- hat ? &hat->label : NULL, GLOBAL_ROOT_UID, NULL,
+ hat ? &hat->label : NULL, GLOBAL_ROOT_UID, info,
error);
if (!hat || (error && error != -ENOENT))
return ERR_PTR(error);

I pushed this fix into apparmor-next



> Signed-off-by: Colin Ian King <[email protected]>
> ---
> security/apparmor/domain.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c
> index 098d546d8253..410d9ce09861 100644
> --- a/security/apparmor/domain.c
> +++ b/security/apparmor/domain.c
> @@ -1006,7 +1006,6 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
> const char *name, bool sibling)
> {
> struct aa_profile *root, *hat = NULL;
> - const char *info = NULL;
> int error = 0;
>
> if (sibling && PROFILE_IS_HAT(profile)) {
> @@ -1014,7 +1013,6 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
> } else if (!sibling && !PROFILE_IS_HAT(profile)) {
> root = aa_get_profile(profile);
> } else {
> - info = "conflicting target types";
> error = -EPERM;
> goto audit;
> }
> @@ -1025,10 +1023,8 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
> if (COMPLAIN_MODE(profile)) {
> hat = aa_new_null_profile(profile, true, name,
> GFP_KERNEL);
> - if (!hat) {
> - info = "failed null profile create";
> + if (!hat)
> error = -ENOMEM;
> - }
> }
> }
> aa_put_profile(root);
>


2018-07-20 10:58:26

by Colin King

[permalink] [raw]
Subject: Re: [PATCH] apparmor: remove redundant pointer 'info'

On 20/07/18 11:31, John Johansen wrote:
> On 07/14/2018 09:19 AM, Colin King wrote:
>> From: Colin Ian King <[email protected]>
>>
>> Pointer 'info' is being assigned but is never used hence it is
>> redundant and can be removed.
>>
>> Cleans up clang warning:
>> warning: variable 'info' set but not used [-Wunused-but-set-variable]
>>
> NAK,
>
> real problem wrong fix, instead of deleting the additional context info
> we need to be auditing it

Ah, thanks for fixing that.

Colin

>
> diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c
> index 098d546d8253..08c88de0ffda 100644
> --- a/security/apparmor/domain.c
> +++ b/security/apparmor/domain.c
> @@ -1036,7 +1036,7 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
> audit:
> aa_audit_file(profile, &nullperms, OP_CHANGE_HAT, AA_MAY_CHANGEHAT,
> name, hat ? hat->base.hname : NULL,
> - hat ? &hat->label : NULL, GLOBAL_ROOT_UID, NULL,
> + hat ? &hat->label : NULL, GLOBAL_ROOT_UID, info,
> error);
> if (!hat || (error && error != -ENOENT))
> return ERR_PTR(error);
>
> I pushed this fix into apparmor-next
>
>
>
>> Signed-off-by: Colin Ian King <[email protected]>
>> ---
>> security/apparmor/domain.c | 6 +-----
>> 1 file changed, 1 insertion(+), 5 deletions(-)
>>
>> diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c
>> index 098d546d8253..410d9ce09861 100644
>> --- a/security/apparmor/domain.c
>> +++ b/security/apparmor/domain.c
>> @@ -1006,7 +1006,6 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
>> const char *name, bool sibling)
>> {
>> struct aa_profile *root, *hat = NULL;
>> - const char *info = NULL;
>> int error = 0;
>>
>> if (sibling && PROFILE_IS_HAT(profile)) {
>> @@ -1014,7 +1013,6 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
>> } else if (!sibling && !PROFILE_IS_HAT(profile)) {
>> root = aa_get_profile(profile);
>> } else {
>> - info = "conflicting target types";
>> error = -EPERM;
>> goto audit;
>> }
>> @@ -1025,10 +1023,8 @@ static struct aa_label *build_change_hat(struct aa_profile *profile,
>> if (COMPLAIN_MODE(profile)) {
>> hat = aa_new_null_profile(profile, true, name,
>> GFP_KERNEL);
>> - if (!hat) {
>> - info = "failed null profile create";
>> + if (!hat)
>> error = -ENOMEM;
>> - }
>> }
>> }
>> aa_put_profile(root);
>>
>