cvs commit: src/sys/kern uipc_syscalls.c

Alfred Perlstein alfred at freebsd.org
Tue May 22 00:37:58 UTC 2007


Is this the same bug that used to be in sendfile but got corrected
some years back?

* Andre Oppermann <andre at FreeBSD.org> [070519 13:52] wrote:
> andre       2007-05-19 20:50:59 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/kern             uipc_syscalls.c 
>   Log:
>   In kern_sendfile() adjust byte accounting of the file sending loop to
>   ignore the size of any headers that were passed with the sendfile(2)
>   system call.  Otherwise the file sent will be truncated by the header
>   size if the nbytes parameter was provided.  The bug doesn't show up
>   when either nbytes is zero, meaning send the whole file, or no header
>   iovec is provided.
>   
>   Resolve a potential error aliasing of errors from the VM and sf_buf
>   parts and the protocol send parts where an error of the latter over-
>   writes one of the former.
>   
>   Update comments.
>   
>   The byte accounting bug wasn't seen in earlier because none of the popular
>   sendfile(2) consumers, Apache, lighttpd and our ftpd(8) use it in modes
>   that trigger it.  The varnish HTTP proxy makes full use of it and exposed
>   the problem.
>   
>   Bug found by:   phk
>   Tested by:      phk
>   
>   Revision  Changes    Path
>   1.256     +37 -13    src/sys/kern/uipc_syscalls.c

-- 
- Alfred Perlstein


More information about the cvs-src mailing list