Remove 'uio' argument from MAC Framework and MAC policy entry points for
extended attribute get/set; in the case of get an uninitialized user buffer was passed before the EA was retrieved, making it of relatively little use; the latter was simply unused by any policies. Obtained from: TrustedBSD Project Sponsored by: Google, Inc.
This commit is contained in:
parent
c14172e3ae
commit
fefd0ac8a9
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=189533
@ -195,7 +195,7 @@ extattr_set_vp(struct vnode *vp, int attrnamespace, const char *attrname,
|
||||
|
||||
#ifdef MAC
|
||||
error = mac_vnode_check_setextattr(td->td_ucred, vp, attrnamespace,
|
||||
attrname, &auio);
|
||||
attrname);
|
||||
if (error)
|
||||
goto done;
|
||||
#endif
|
||||
@ -373,7 +373,7 @@ extattr_get_vp(struct vnode *vp, int attrnamespace, const char *attrname,
|
||||
|
||||
#ifdef MAC
|
||||
error = mac_vnode_check_getextattr(td->td_ucred, vp, attrnamespace,
|
||||
attrname, &auio);
|
||||
attrname);
|
||||
if (error)
|
||||
goto done;
|
||||
#endif
|
||||
|
@ -85,7 +85,6 @@ struct pipepair;
|
||||
struct thread;
|
||||
struct timespec;
|
||||
struct ucred;
|
||||
struct uio;
|
||||
struct vattr;
|
||||
struct vnode;
|
||||
struct vop_setlabel_args;
|
||||
@ -377,7 +376,7 @@ int mac_vnode_check_exec(struct ucred *cred, struct vnode *vp,
|
||||
int mac_vnode_check_getacl(struct ucred *cred, struct vnode *vp,
|
||||
acl_type_t type);
|
||||
int mac_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
int attrnamespace, const char *name, struct uio *uio);
|
||||
int attrnamespace, const char *name);
|
||||
int mac_vnode_check_link(struct ucred *cred, struct vnode *dvp,
|
||||
struct vnode *vp, struct componentname *cnp);
|
||||
int mac_vnode_check_listextattr(struct ucred *cred, struct vnode *vp,
|
||||
@ -404,7 +403,7 @@ int mac_vnode_check_revoke(struct ucred *cred, struct vnode *vp);
|
||||
int mac_vnode_check_setacl(struct ucred *cred, struct vnode *vp,
|
||||
acl_type_t type, struct acl *acl);
|
||||
int mac_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
int attrnamespace, const char *name, struct uio *uio);
|
||||
int attrnamespace, const char *name);
|
||||
int mac_vnode_check_setflags(struct ucred *cred, struct vnode *vp,
|
||||
u_long flags);
|
||||
int mac_vnode_check_setmode(struct ucred *cred, struct vnode *vp,
|
||||
|
@ -97,7 +97,6 @@ struct sysctl_oid;
|
||||
struct sysctl_req;
|
||||
struct thread;
|
||||
struct ucred;
|
||||
struct uio;
|
||||
struct vattr;
|
||||
struct vnode;
|
||||
|
||||
@ -557,7 +556,7 @@ typedef int (*mpo_vnode_check_getacl_t)(struct ucred *cred,
|
||||
acl_type_t type);
|
||||
typedef int (*mpo_vnode_check_getextattr_t)(struct ucred *cred,
|
||||
struct vnode *vp, struct label *vplabel,
|
||||
int attrnamespace, const char *name, struct uio *uio);
|
||||
int attrnamespace, const char *name);
|
||||
typedef int (*mpo_vnode_check_link_t)(struct ucred *cred,
|
||||
struct vnode *dvp, struct label *dvplabel,
|
||||
struct vnode *vp, struct label *vplabel,
|
||||
@ -606,7 +605,7 @@ typedef int (*mpo_vnode_check_setacl_t)(struct ucred *cred,
|
||||
struct acl *acl);
|
||||
typedef int (*mpo_vnode_check_setextattr_t)(struct ucred *cred,
|
||||
struct vnode *vp, struct label *vplabel,
|
||||
int attrnamespace, const char *name, struct uio *uio);
|
||||
int attrnamespace, const char *name);
|
||||
typedef int (*mpo_vnode_check_setflags_t)(struct ucred *cred,
|
||||
struct vnode *vp, struct label *vplabel, u_long flags);
|
||||
typedef int (*mpo_vnode_check_setmode_t)(struct ucred *cred,
|
||||
|
@ -506,14 +506,14 @@ MAC_CHECK_PROBE_DEFINE4(vnode_check_getextattr, "struct ucred *",
|
||||
|
||||
int
|
||||
mac_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
int attrnamespace, const char *name, struct uio *uio)
|
||||
int attrnamespace, const char *name)
|
||||
{
|
||||
int error;
|
||||
|
||||
ASSERT_VOP_LOCKED(vp, "mac_vnode_check_getextattr");
|
||||
|
||||
MAC_CHECK(vnode_check_getextattr, cred, vp, vp->v_label,
|
||||
attrnamespace, name, uio);
|
||||
attrnamespace, name);
|
||||
MAC_CHECK_PROBE4(vnode_check_getextattr, error, cred, vp,
|
||||
attrnamespace, name);
|
||||
|
||||
@ -798,14 +798,14 @@ MAC_CHECK_PROBE_DEFINE4(vnode_check_setextattr, "struct ucred *",
|
||||
|
||||
int
|
||||
mac_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
int attrnamespace, const char *name, struct uio *uio)
|
||||
int attrnamespace, const char *name)
|
||||
{
|
||||
int error;
|
||||
|
||||
ASSERT_VOP_LOCKED(vp, "mac_vnode_check_setextattr");
|
||||
|
||||
MAC_CHECK(vnode_check_setextattr, cred, vp, vp->v_label,
|
||||
attrnamespace, name, uio);
|
||||
attrnamespace, name);
|
||||
MAC_CHECK_PROBE4(vnode_check_setextattr, error, cred, vp,
|
||||
attrnamespace, name);
|
||||
|
||||
|
@ -2775,8 +2775,7 @@ biba_vnode_check_getacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
static int
|
||||
biba_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
struct mac_biba *subj, *obj;
|
||||
|
||||
@ -3116,8 +3115,7 @@ biba_vnode_check_setacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
static int
|
||||
biba_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
struct mac_biba *subj, *obj;
|
||||
|
||||
|
@ -72,8 +72,7 @@ int ugidfw_vnode_check_exec(struct ucred *cred, struct vnode *vp,
|
||||
int ugidfw_vnode_check_getacl(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, acl_type_t type);
|
||||
int ugidfw_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio);
|
||||
struct label *vplabel, int attrnamespace, const char *name);
|
||||
int ugidfw_vnode_check_link(struct ucred *cred, struct vnode *dvp,
|
||||
struct label *dvplabel, struct vnode *vp, struct label *label,
|
||||
struct componentname *cnp);
|
||||
@ -98,8 +97,7 @@ int ugidfw_vnode_check_revoke(struct ucred *cred, struct vnode *vp,
|
||||
int ugidfw_check_setacl_vnode(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, acl_type_t type, struct acl *acl);
|
||||
int ugidfw_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio);
|
||||
struct label *vplabel, int attrnamespace, const char *name);
|
||||
int ugidfw_vnode_check_setflags(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, u_long flags);
|
||||
int ugidfw_vnode_check_setmode(struct ucred *cred, struct vnode *vp,
|
||||
|
@ -127,8 +127,7 @@ ugidfw_vnode_check_getacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
int
|
||||
ugidfw_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
|
||||
return (ugidfw_check_vp(cred, vp, MBI_READ));
|
||||
@ -236,8 +235,7 @@ ugidfw_check_setacl_vnode(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
int
|
||||
ugidfw_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
|
||||
return (ugidfw_check_vp(cred, vp, MBI_WRITE));
|
||||
|
@ -2631,8 +2631,7 @@ lomac_vnode_check_setacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
static int
|
||||
lomac_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
struct mac_lomac *subj, *obj;
|
||||
|
||||
|
@ -2398,8 +2398,7 @@ mls_vnode_check_getacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
static int
|
||||
mls_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
struct mac_mls *subj, *obj;
|
||||
|
||||
@ -2739,8 +2738,7 @@ mls_vnode_check_setacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
static int
|
||||
mls_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
struct mac_mls *subj, *obj;
|
||||
|
||||
|
@ -1283,8 +1283,7 @@ stub_vnode_check_getacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
static int
|
||||
stub_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
|
||||
return (0);
|
||||
@ -1422,8 +1421,7 @@ stub_vnode_check_setacl(struct ucred *cred, struct vnode *vp,
|
||||
|
||||
static int
|
||||
stub_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
|
||||
return (0);
|
||||
|
@ -2435,8 +2435,7 @@ test_vnode_check_getacl(struct ucred *cred, struct vnode *vp,
|
||||
COUNTER_DECL(vnode_check_getextattr);
|
||||
static int
|
||||
test_vnode_check_getextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
|
||||
LABEL_CHECK(cred->cr_label, MAGIC_CRED);
|
||||
@ -2642,8 +2641,7 @@ test_vnode_check_setacl(struct ucred *cred, struct vnode *vp,
|
||||
COUNTER_DECL(vnode_check_setextattr);
|
||||
static int
|
||||
test_vnode_check_setextattr(struct ucred *cred, struct vnode *vp,
|
||||
struct label *vplabel, int attrnamespace, const char *name,
|
||||
struct uio *uio)
|
||||
struct label *vplabel, int attrnamespace, const char *name)
|
||||
{
|
||||
|
||||
LABEL_CHECK(cred->cr_label, MAGIC_CRED);
|
||||
|
Loading…
Reference in New Issue
Block a user