diff options
| author | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2013-08-18 13:37:54 +0000 |
|---|---|---|
| committer | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2013-08-18 13:37:54 +0000 |
| commit | 32536142f62f783c4d930565a334e4616ae96e0a (patch) | |
| tree | 6b9ad5dcff5858311f66e4271f9bbe1c9c4f0981 /sys/compat | |
| parent | d6f6b8764762fe3371bf6e36fcfb0d8c82716393 (diff) | |
Notes
Diffstat (limited to 'sys/compat')
| -rw-r--r-- | sys/compat/freebsd32/freebsd32_capability.c | 21 | ||||
| -rw-r--r-- | sys/compat/freebsd32/syscalls.master | 9 |
2 files changed, 28 insertions, 2 deletions
diff --git a/sys/compat/freebsd32/freebsd32_capability.c b/sys/compat/freebsd32/freebsd32_capability.c index 078d949d3798..e17c39417ffc 100644 --- a/sys/compat/freebsd32/freebsd32_capability.c +++ b/sys/compat/freebsd32/freebsd32_capability.c @@ -38,9 +38,11 @@ __FBSDID("$FreeBSD$"); #include <sys/malloc.h> #include <sys/proc.h> #include <sys/syscallsubr.h> +#include <sys/sysproto.h> #include <security/audit/audit.h> +#include <compat/freebsd32/freebsd32_misc.h> #include <compat/freebsd32/freebsd32_proto.h> #ifdef CAPABILITIES @@ -48,6 +50,17 @@ __FBSDID("$FreeBSD$"); MALLOC_DECLARE(M_FILECAPS); int +freebsd32_cap_rights_limit(struct thread *td, + struct freebsd32_cap_rights_limit_args *uap) +{ + struct cap_rights_limit_args ap; + + ap.fd = uap->fd; + ap.rights = PAIR32TO64(uint64_t, uap->rights); + return (sys_cap_rights_limit(td, &ap)); +} + +int freebsd32_cap_ioctls_limit(struct thread *td, struct freebsd32_cap_ioctls_limit_args *uap) { @@ -135,6 +148,14 @@ out: #else /* !CAPABILITIES */ int +freebsd32_cap_rights_limit(struct thread *td, + struct freebsd32_cap_rights_limit_args *uap) +{ + + return (ENOSYS); +} + +int freebsd32_cap_ioctls_limit(struct thread *td, struct freebsd32_cap_ioctls_limit_args *uap) { diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master index 1a0828ada48b..a2e3e7836e6a 100644 --- a/sys/compat/freebsd32/syscalls.master +++ b/sys/compat/freebsd32/syscalls.master @@ -1016,6 +1016,10 @@ int *status, int options, \ struct wrusage32 *wrusage, \ siginfo_t *info); } +533 AUE_CAP_RIGHTS_LIMIT STD { \ + int freebsd32_cap_rights_limit(int fd, \ + int pad, \ + uint32_t rights1, uint32_t rights2); } #else 530 AUE_NULL STD { int freebsd32_posix_fallocate(int fd,\ uint32_t offset1, uint32_t offset2,\ @@ -1029,9 +1033,10 @@ int *status, int options, \ struct wrusage32 *wrusage, \ siginfo_t *info); } +533 AUE_CAP_RIGHTS_LIMIT STD { \ + int freebsd32_cap_rights_limit(int fd, \ + uint32_t rights1, uint32_t rights2); } #endif -533 AUE_CAP_RIGHTS_LIMIT NOPROTO { int cap_rights_limit(int fd, \ - uint64_t rights); } 534 AUE_CAP_IOCTLS_LIMIT STD { \ int freebsd32_cap_ioctls_limit(int fd, \ const uint32_t *cmds, size_t ncmds); } |
