|
@@ -217,7 +217,7 @@ static int smack_syslog(int typefrom_file)
|
|
|
int rc = 0;
|
|
int rc = 0;
|
|
|
char *sp = smk_of_current();
|
|
char *sp = smk_of_current();
|
|
|
|
|
|
|
|
- if (capable(CAP_MAC_OVERRIDE))
|
|
|
|
|
|
|
+ if (smack_privileged(CAP_MAC_OVERRIDE))
|
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
if (sp != smack_known_floor.smk_known)
|
|
if (sp != smack_known_floor.smk_known)
|
|
@@ -821,7 +821,7 @@ static int smack_inode_setxattr(struct dentry *dentry, const char *name,
|
|
|
strcmp(name, XATTR_NAME_SMACKIPOUT) == 0 ||
|
|
strcmp(name, XATTR_NAME_SMACKIPOUT) == 0 ||
|
|
|
strcmp(name, XATTR_NAME_SMACKEXEC) == 0 ||
|
|
strcmp(name, XATTR_NAME_SMACKEXEC) == 0 ||
|
|
|
strcmp(name, XATTR_NAME_SMACKMMAP) == 0) {
|
|
strcmp(name, XATTR_NAME_SMACKMMAP) == 0) {
|
|
|
- if (!capable(CAP_MAC_ADMIN))
|
|
|
|
|
|
|
+ if (!smack_privileged(CAP_MAC_ADMIN))
|
|
|
rc = -EPERM;
|
|
rc = -EPERM;
|
|
|
/*
|
|
/*
|
|
|
* check label validity here so import wont fail on
|
|
* check label validity here so import wont fail on
|
|
@@ -831,7 +831,7 @@ static int smack_inode_setxattr(struct dentry *dentry, const char *name,
|
|
|
smk_import(value, size) == NULL)
|
|
smk_import(value, size) == NULL)
|
|
|
rc = -EINVAL;
|
|
rc = -EINVAL;
|
|
|
} else if (strcmp(name, XATTR_NAME_SMACKTRANSMUTE) == 0) {
|
|
} else if (strcmp(name, XATTR_NAME_SMACKTRANSMUTE) == 0) {
|
|
|
- if (!capable(CAP_MAC_ADMIN))
|
|
|
|
|
|
|
+ if (!smack_privileged(CAP_MAC_ADMIN))
|
|
|
rc = -EPERM;
|
|
rc = -EPERM;
|
|
|
if (size != TRANS_TRUE_SIZE ||
|
|
if (size != TRANS_TRUE_SIZE ||
|
|
|
strncmp(value, TRANS_TRUE, TRANS_TRUE_SIZE) != 0)
|
|
strncmp(value, TRANS_TRUE, TRANS_TRUE_SIZE) != 0)
|
|
@@ -927,7 +927,7 @@ static int smack_inode_removexattr(struct dentry *dentry, const char *name)
|
|
|
strcmp(name, XATTR_NAME_SMACKEXEC) == 0 ||
|
|
strcmp(name, XATTR_NAME_SMACKEXEC) == 0 ||
|
|
|
strcmp(name, XATTR_NAME_SMACKTRANSMUTE) == 0 ||
|
|
strcmp(name, XATTR_NAME_SMACKTRANSMUTE) == 0 ||
|
|
|
strcmp(name, XATTR_NAME_SMACKMMAP)) {
|
|
strcmp(name, XATTR_NAME_SMACKMMAP)) {
|
|
|
- if (!capable(CAP_MAC_ADMIN))
|
|
|
|
|
|
|
+ if (!smack_privileged(CAP_MAC_ADMIN))
|
|
|
rc = -EPERM;
|
|
rc = -EPERM;
|
|
|
} else
|
|
} else
|
|
|
rc = cap_inode_removexattr(dentry, name);
|
|
rc = cap_inode_removexattr(dentry, name);
|
|
@@ -1716,7 +1716,8 @@ static int smack_task_wait(struct task_struct *p)
|
|
|
* state into account in the decision as well as
|
|
* state into account in the decision as well as
|
|
|
* the smack value.
|
|
* the smack value.
|
|
|
*/
|
|
*/
|
|
|
- if (capable(CAP_MAC_OVERRIDE) || has_capability(p, CAP_MAC_OVERRIDE))
|
|
|
|
|
|
|
+ if (smack_privileged(CAP_MAC_OVERRIDE) ||
|
|
|
|
|
+ has_capability(p, CAP_MAC_OVERRIDE))
|
|
|
rc = 0;
|
|
rc = 0;
|
|
|
/* we log only if we didn't get overriden */
|
|
/* we log only if we didn't get overriden */
|
|
|
out_log:
|
|
out_log:
|
|
@@ -2717,7 +2718,7 @@ static int smack_setprocattr(struct task_struct *p, char *name,
|
|
|
if (p != current)
|
|
if (p != current)
|
|
|
return -EPERM;
|
|
return -EPERM;
|
|
|
|
|
|
|
|
- if (!capable(CAP_MAC_ADMIN))
|
|
|
|
|
|
|
+ if (!smack_privileged(CAP_MAC_ADMIN))
|
|
|
return -EPERM;
|
|
return -EPERM;
|
|
|
|
|
|
|
|
if (value == NULL || size == 0 || size >= SMK_LONGLABEL)
|
|
if (value == NULL || size == 0 || size >= SMK_LONGLABEL)
|
|
@@ -2780,7 +2781,7 @@ static int smack_unix_stream_connect(struct sock *sock,
|
|
|
smk_ad_setfield_u_net_sk(&ad, other);
|
|
smk_ad_setfield_u_net_sk(&ad, other);
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
- if (!capable(CAP_MAC_OVERRIDE))
|
|
|
|
|
|
|
+ if (!smack_privileged(CAP_MAC_OVERRIDE))
|
|
|
rc = smk_access(ssp->smk_out, osp->smk_in, MAY_WRITE, &ad);
|
|
rc = smk_access(ssp->smk_out, osp->smk_in, MAY_WRITE, &ad);
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -2816,7 +2817,7 @@ static int smack_unix_may_send(struct socket *sock, struct socket *other)
|
|
|
smk_ad_setfield_u_net_sk(&ad, other->sk);
|
|
smk_ad_setfield_u_net_sk(&ad, other->sk);
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
- if (!capable(CAP_MAC_OVERRIDE))
|
|
|
|
|
|
|
+ if (!smack_privileged(CAP_MAC_OVERRIDE))
|
|
|
rc = smk_access(ssp->smk_out, osp->smk_in, MAY_WRITE, &ad);
|
|
rc = smk_access(ssp->smk_out, osp->smk_in, MAY_WRITE, &ad);
|
|
|
|
|
|
|
|
return rc;
|
|
return rc;
|