diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c index deb03f3ef586..9a5dd4365c2d 100644 --- a/sys/compat/freebsd32/freebsd32_misc.c +++ b/sys/compat/freebsd32/freebsd32_misc.c @@ -1652,6 +1652,7 @@ freebsd32_do_sendfile(struct thread *td, cap_rights_t rights; off_t offset; int error; + off_t sbytes; offset = PAIR32TO64(off_t, uap->offset); if (offset < 0) @@ -1692,8 +1693,10 @@ freebsd32_do_sendfile(struct thread *td, } error = fo_sendfile(fp, uap->s, hdr_uio, trl_uio, offset, - uap->nbytes, uap->sbytes, uap->flags, compat ? SFK_COMPAT : 0, td); + uap->nbytes, &sbytes, uap->flags, compat ? SFK_COMPAT : 0, td); fdrop(fp, td); + if (uap->sbytes != NULL) + copyout(&sbytes, uap->sbytes, sizeof(off_t)); out: if (hdr_uio)