diff options
| -rw-r--r-- | security/smack/smack_access.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/security/smack/smack_access.c b/security/smack/smack_access.c index 5b970ffde024..999224fe8593 100644 --- a/security/smack/smack_access.c +++ b/security/smack/smack_access.c | |||
| @@ -142,8 +142,7 @@ int smk_access(struct smack_known *subject, struct smack_known *object, | |||
| 142 | * Tasks cannot be assigned the internet label. | 142 | * Tasks cannot be assigned the internet label. |
| 143 | * An internet subject can access any object. | 143 | * An internet subject can access any object. |
| 144 | */ | 144 | */ |
| 145 | if (object == &smack_known_web || | 145 | if (object == &smack_known_web || subject == &smack_known_web) |
| 146 | subject == &smack_known_web) | ||
| 147 | goto out_audit; | 146 | goto out_audit; |
| 148 | /* | 147 | /* |
| 149 | * A star object can be accessed by any subject. | 148 | * A star object can be accessed by any subject. |
| @@ -157,10 +156,11 @@ int smk_access(struct smack_known *subject, struct smack_known *object, | |||
| 157 | if (subject->smk_known == object->smk_known) | 156 | if (subject->smk_known == object->smk_known) |
| 158 | goto out_audit; | 157 | goto out_audit; |
| 159 | /* | 158 | /* |
| 160 | * A hat subject can read any object. | 159 | * A hat subject can read or lock any object. |
| 161 | * A floor object can be read by any subject. | 160 | * A floor object can be read or locked by any subject. |
| 162 | */ | 161 | */ |
| 163 | if ((request & MAY_ANYREAD) == request) { | 162 | if ((request & MAY_ANYREAD) == request || |
| 163 | (request & MAY_LOCK) == request) { | ||
| 164 | if (object == &smack_known_floor) | 164 | if (object == &smack_known_floor) |
| 165 | goto out_audit; | 165 | goto out_audit; |
| 166 | if (subject == &smack_known_hat) | 166 | if (subject == &smack_known_hat) |
