Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vfs_extattr.c
Show First 20 Lines • Show All 236 Lines • ▼ Show 20 Lines | sys_extattr_set_fd(struct thread *td, struct extattr_set_fd_args *uap) | ||||
AUDIT_ARG_FD(uap->fd); | AUDIT_ARG_FD(uap->fd); | ||||
AUDIT_ARG_VALUE(uap->attrnamespace); | AUDIT_ARG_VALUE(uap->attrnamespace); | ||||
error = copyinstr(uap->attrname, attrname, sizeof(attrname), NULL); | error = copyinstr(uap->attrname, attrname, sizeof(attrname), NULL); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
AUDIT_ARG_TEXT(attrname); | AUDIT_ARG_TEXT(attrname); | ||||
error = getvnode(td, uap->fd, | error = getvnode_path(td, uap->fd, | ||||
cap_rights_init_one(&rights, CAP_EXTATTR_SET), &fp); | cap_rights_init_one(&rights, CAP_EXTATTR_SET), &fp); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
error = extattr_set_vp(fp->f_vnode, uap->attrnamespace, | error = extattr_set_vp(fp->f_vnode, uap->attrnamespace, | ||||
attrname, uap->data, uap->nbytes, td); | attrname, uap->data, uap->nbytes, td); | ||||
fdrop(fp, td); | fdrop(fp, td); | ||||
▲ Show 20 Lines • Show All 150 Lines • ▼ Show 20 Lines | sys_extattr_get_fd(struct thread *td, struct extattr_get_fd_args *uap) | ||||
AUDIT_ARG_FD(uap->fd); | AUDIT_ARG_FD(uap->fd); | ||||
AUDIT_ARG_VALUE(uap->attrnamespace); | AUDIT_ARG_VALUE(uap->attrnamespace); | ||||
error = copyinstr(uap->attrname, attrname, sizeof(attrname), NULL); | error = copyinstr(uap->attrname, attrname, sizeof(attrname), NULL); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
AUDIT_ARG_TEXT(attrname); | AUDIT_ARG_TEXT(attrname); | ||||
error = getvnode(td, uap->fd, | error = getvnode_path(td, uap->fd, | ||||
cap_rights_init_one(&rights, CAP_EXTATTR_GET), &fp); | cap_rights_init_one(&rights, CAP_EXTATTR_GET), &fp); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
error = extattr_get_vp(fp->f_vnode, uap->attrnamespace, | error = extattr_get_vp(fp->f_vnode, uap->attrnamespace, | ||||
attrname, uap->data, uap->nbytes, td); | attrname, uap->data, uap->nbytes, td); | ||||
fdrop(fp, td); | fdrop(fp, td); | ||||
▲ Show 20 Lines • Show All 118 Lines • ▼ Show 20 Lines | sys_extattr_delete_fd(struct thread *td, struct extattr_delete_fd_args *uap) | ||||
AUDIT_ARG_FD(uap->fd); | AUDIT_ARG_FD(uap->fd); | ||||
AUDIT_ARG_VALUE(uap->attrnamespace); | AUDIT_ARG_VALUE(uap->attrnamespace); | ||||
error = copyinstr(uap->attrname, attrname, sizeof(attrname), NULL); | error = copyinstr(uap->attrname, attrname, sizeof(attrname), NULL); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
AUDIT_ARG_TEXT(attrname); | AUDIT_ARG_TEXT(attrname); | ||||
error = getvnode(td, uap->fd, | error = getvnode_path(td, uap->fd, | ||||
cap_rights_init_one(&rights, CAP_EXTATTR_DELETE), &fp); | cap_rights_init_one(&rights, CAP_EXTATTR_DELETE), &fp); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
error = extattr_delete_vp(fp->f_vnode, uap->attrnamespace, | error = extattr_delete_vp(fp->f_vnode, uap->attrnamespace, | ||||
attrname, td); | attrname, td); | ||||
fdrop(fp, td); | fdrop(fp, td); | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 129 Lines • ▼ Show 20 Lines | |||||
sys_extattr_list_fd(struct thread *td, struct extattr_list_fd_args *uap) | sys_extattr_list_fd(struct thread *td, struct extattr_list_fd_args *uap) | ||||
{ | { | ||||
struct file *fp; | struct file *fp; | ||||
cap_rights_t rights; | cap_rights_t rights; | ||||
int error; | int error; | ||||
AUDIT_ARG_FD(uap->fd); | AUDIT_ARG_FD(uap->fd); | ||||
AUDIT_ARG_VALUE(uap->attrnamespace); | AUDIT_ARG_VALUE(uap->attrnamespace); | ||||
error = getvnode(td, uap->fd, | error = getvnode_path(td, uap->fd, | ||||
cap_rights_init_one(&rights, CAP_EXTATTR_LIST), &fp); | cap_rights_init_one(&rights, CAP_EXTATTR_LIST), &fp); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
error = extattr_list_vp(fp->f_vnode, uap->attrnamespace, uap->data, | error = extattr_list_vp(fp->f_vnode, uap->attrnamespace, uap->data, | ||||
uap->nbytes, td); | uap->nbytes, td); | ||||
fdrop(fp, td); | fdrop(fp, td); | ||||
▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines |