mirror of https://gitee.com/openkylin/linux.git
include/linux/cred.h: fix build
mips allmodconfig:
include/linux/cred.h: In function `creds_are_invalid':
include/linux/cred.h:187: error: `PAGE_SIZE' undeclared (first use in this function)
include/linux/cred.h:187: error: (Each undeclared identifier is reported only once
include/linux/cred.h:187: error: for each function it appears in.)
Fixes
commit b6dff3ec5e
Author: David Howells <dhowells@redhat.com>
AuthorDate: Fri Nov 14 10:39:16 2008 +1100
Commit: James Morris <jmorris@namei.org>
CommitDate: Fri Nov 14 10:39:16 2008 +1100
CRED: Separate task security context from task_struct
I think.
It's way too large to be inlined anyway.
Dunno if this needs an EXPORT_SYMBOL() yet.
Cc: David Howells <dhowells@redhat.com>
Cc: James Morris <jmorris@namei.org>
Cc: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
parent
43c1266ce4
commit
74908a0009
|
@ -176,23 +176,7 @@ extern void __invalid_creds(const struct cred *, const char *, unsigned);
|
||||||
extern void __validate_process_creds(struct task_struct *,
|
extern void __validate_process_creds(struct task_struct *,
|
||||||
const char *, unsigned);
|
const char *, unsigned);
|
||||||
|
|
||||||
static inline bool creds_are_invalid(const struct cred *cred)
|
extern bool creds_are_invalid(const struct cred *cred);
|
||||||
{
|
|
||||||
if (cred->magic != CRED_MAGIC)
|
|
||||||
return true;
|
|
||||||
if (atomic_read(&cred->usage) < atomic_read(&cred->subscribers))
|
|
||||||
return true;
|
|
||||||
#ifdef CONFIG_SECURITY_SELINUX
|
|
||||||
if (selinux_is_enabled()) {
|
|
||||||
if ((unsigned long) cred->security < PAGE_SIZE)
|
|
||||||
return true;
|
|
||||||
if ((*(u32 *)cred->security & 0xffffff00) ==
|
|
||||||
(POISON_FREE << 24 | POISON_FREE << 16 | POISON_FREE << 8))
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void __validate_creds(const struct cred *cred,
|
static inline void __validate_creds(const struct cred *cred,
|
||||||
const char *file, unsigned line)
|
const char *file, unsigned line)
|
||||||
|
|
|
@ -782,6 +782,24 @@ EXPORT_SYMBOL(set_create_files_as);
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_CREDENTIALS
|
#ifdef CONFIG_DEBUG_CREDENTIALS
|
||||||
|
|
||||||
|
bool creds_are_invalid(const struct cred *cred)
|
||||||
|
{
|
||||||
|
if (cred->magic != CRED_MAGIC)
|
||||||
|
return true;
|
||||||
|
if (atomic_read(&cred->usage) < atomic_read(&cred->subscribers))
|
||||||
|
return true;
|
||||||
|
#ifdef CONFIG_SECURITY_SELINUX
|
||||||
|
if (selinux_is_enabled()) {
|
||||||
|
if ((unsigned long) cred->security < PAGE_SIZE)
|
||||||
|
return true;
|
||||||
|
if ((*(u32 *)cred->security & 0xffffff00) ==
|
||||||
|
(POISON_FREE << 24 | POISON_FREE << 16 | POISON_FREE << 8))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dump invalid credentials
|
* dump invalid credentials
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue