|
@@ -621,8 +621,8 @@ int aa_change_hat(const char *hats[], int count, u64 token, bool permtest)
|
|
|
/* released below */
|
|
|
cred = get_current_cred();
|
|
|
cxt = cred_cxt(cred);
|
|
|
- profile = aa_cred_profile(cred);
|
|
|
- previous_profile = cxt->previous;
|
|
|
+ profile = aa_get_newest_profile(aa_cred_profile(cred));
|
|
|
+ previous_profile = aa_get_newest_profile(cxt->previous);
|
|
|
|
|
|
if (unconfined(profile)) {
|
|
|
info = "unconfined";
|
|
@@ -718,6 +718,8 @@ audit:
|
|
|
out:
|
|
|
aa_put_profile(hat);
|
|
|
kfree(name);
|
|
|
+ aa_put_profile(profile);
|
|
|
+ aa_put_profile(previous_profile);
|
|
|
put_cred(cred);
|
|
|
|
|
|
return error;
|