diff options
Diffstat (limited to 'sys/kern/kern_descrip.c')
-rw-r--r-- | sys/kern/kern_descrip.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 2722283..79f6695 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -404,9 +404,10 @@ kern_fcntl_freebsd(struct thread *td, int fd, int cmd, long arg) struct flock fl; struct __oflock ofl; intptr_t arg1; - int error; + int error, newcmd; error = 0; + newcmd = cmd; switch (cmd) { case F_OGETLK: case F_OSETLK: @@ -424,13 +425,13 @@ kern_fcntl_freebsd(struct thread *td, int fd, int cmd, long arg) switch (cmd) { case F_OGETLK: - cmd = F_GETLK; + newcmd = F_GETLK; break; case F_OSETLK: - cmd = F_SETLK; + newcmd = F_SETLK; break; case F_OSETLKW: - cmd = F_SETLKW; + newcmd = F_SETLKW; break; } arg1 = (intptr_t)&fl; @@ -448,7 +449,7 @@ kern_fcntl_freebsd(struct thread *td, int fd, int cmd, long arg) } if (error) return (error); - error = kern_fcntl(td, fd, cmd, arg1); + error = kern_fcntl(td, fd, newcmd, arg1); if (error) return (error); if (cmd == F_OGETLK) { @@ -2423,13 +2424,10 @@ _fget(struct thread *td, int fd, struct file **fpp, int flags, { struct filedesc *fdp; struct file *fp; - cap_rights_t needrights; int error; *fpp = NULL; fdp = td->td_proc->p_fd; - if (needrightsp == NULL) - needrightsp = cap_rights_init(&needrights); error = fget_unlocked(fdp, fd, needrightsp, &fp, seqp); if (error != 0) return (error); |