Smack: Abstract use of cred security blob
Don't use the cred->security pointer directly. Provide a helper function that provides the security blob pointer. Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> Reviewed-by: Kees Cook <keescook@chromium.org> [kees: adjusted for ordered init series] Signed-off-by: Kees Cook <keescook@chromium.org>
此提交包含在:
@@ -2208,14 +2208,14 @@ static const struct file_operations smk_logging_ops = {
|
||||
|
||||
static void *load_self_seq_start(struct seq_file *s, loff_t *pos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_seq_start(s, pos, &tsp->smk_rules);
|
||||
}
|
||||
|
||||
static void *load_self_seq_next(struct seq_file *s, void *v, loff_t *pos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_seq_next(s, v, pos, &tsp->smk_rules);
|
||||
}
|
||||
@@ -2262,7 +2262,7 @@ static int smk_open_load_self(struct inode *inode, struct file *file)
|
||||
static ssize_t smk_write_load_self(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules,
|
||||
&tsp->smk_rules_lock, SMK_FIXED24_FMT);
|
||||
@@ -2414,14 +2414,14 @@ static const struct file_operations smk_load2_ops = {
|
||||
|
||||
static void *load_self2_seq_start(struct seq_file *s, loff_t *pos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_seq_start(s, pos, &tsp->smk_rules);
|
||||
}
|
||||
|
||||
static void *load_self2_seq_next(struct seq_file *s, void *v, loff_t *pos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_seq_next(s, v, pos, &tsp->smk_rules);
|
||||
}
|
||||
@@ -2467,7 +2467,7 @@ static int smk_open_load_self2(struct inode *inode, struct file *file)
|
||||
static ssize_t smk_write_load_self2(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules,
|
||||
&tsp->smk_rules_lock, SMK_LONG_FMT);
|
||||
@@ -2681,14 +2681,14 @@ static const struct file_operations smk_syslog_ops = {
|
||||
|
||||
static void *relabel_self_seq_start(struct seq_file *s, loff_t *pos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_seq_start(s, pos, &tsp->smk_relabel);
|
||||
}
|
||||
|
||||
static void *relabel_self_seq_next(struct seq_file *s, void *v, loff_t *pos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
|
||||
return smk_seq_next(s, v, pos, &tsp->smk_relabel);
|
||||
}
|
||||
@@ -2736,7 +2736,7 @@ static int smk_open_relabel_self(struct inode *inode, struct file *file)
|
||||
static ssize_t smk_write_relabel_self(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct task_smack *tsp = current_security();
|
||||
struct task_smack *tsp = smack_cred(current_cred());
|
||||
char *data;
|
||||
int rc;
|
||||
LIST_HEAD(list_tmp);
|
||||
|
新增問題並參考
封鎖使用者