diff options
Diffstat (limited to 'include/linux/cred.h')
| -rw-r--r-- | include/linux/cred.h | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/include/linux/cred.h b/include/linux/cred.h index fb371601a3b4..4e3387a89cb9 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h | |||
| @@ -176,23 +176,7 @@ extern void __invalid_creds(const struct cred *, const char *, unsigned); | |||
| 176 | extern void __validate_process_creds(struct task_struct *, | 176 | extern void __validate_process_creds(struct task_struct *, |
| 177 | const char *, unsigned); | 177 | const char *, unsigned); |
| 178 | 178 | ||
| 179 | static inline bool creds_are_invalid(const struct cred *cred) | 179 | extern bool creds_are_invalid(const struct cred *cred); |
| 180 | { | ||
| 181 | if (cred->magic != CRED_MAGIC) | ||
| 182 | return true; | ||
| 183 | if (atomic_read(&cred->usage) < atomic_read(&cred->subscribers)) | ||
| 184 | return true; | ||
| 185 | #ifdef CONFIG_SECURITY_SELINUX | ||
| 186 | if (selinux_is_enabled()) { | ||
| 187 | if ((unsigned long) cred->security < PAGE_SIZE) | ||
| 188 | return true; | ||
| 189 | if ((*(u32 *)cred->security & 0xffffff00) == | ||
| 190 | (POISON_FREE << 24 | POISON_FREE << 16 | POISON_FREE << 8)) | ||
| 191 | return true; | ||
| 192 | } | ||
| 193 | #endif | ||
| 194 | return false; | ||
| 195 | } | ||
| 196 | 180 | ||
| 197 | static inline void __validate_creds(const struct cred *cred, | 181 | static inline void __validate_creds(const struct cred *cred, |
| 198 | const char *file, unsigned line) | 182 | const char *file, unsigned line) |
