Index: sys/kern/kern_sendfile.c =================================================================== --- sys/kern/kern_sendfile.c +++ sys/kern/kern_sendfile.c @@ -1007,8 +1007,18 @@ uap->nbytes, &sbytes, uap->flags, td); fdrop(fp, td); - if (uap->sbytes != NULL) - copyout(&sbytes, uap->sbytes, sizeof(off_t)); + if (uap->sbytes != NULL) { + int copyout_error; + + copyout_error = copyout(&sbytes, uap->sbytes, sizeof(off_t)); + /* + * Ensure that copyout's success doesn't mask an existing + * error, + * + * copyout(9) failing should be a rare occurrence. + */ + error = copyout_error != 0 ? copyout_error : error; + } out: free(hdr_uio, M_IOV);