Date: Sun, 12 Dec 1999 18:55:49 -0800 (PST) From: Tor Egge <tegge@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern sys_pipe.c Message-ID: <199912130255.SAA67596@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
tegge 1999/12/12 18:55:49 PST Modified files: sys/kern sys_pipe.c Log: Fix two problems with pipe_write(): 1. Data written beyond end of pipe buffer, causing kernel memory corruption. - Check that space is still valid after obtaining the pipe lock. - Defer the calculation of transfer size until the pipe lock has been obtained. - Update the pipe buffer pointers while holding the pipe lock. 2. Writes of size <= PIPE_BUF not always atomic. - Allow an internal write to span two contiguous segments, so writes of size <= PIPE_BUF can be kept atomic when wrapping around from the end to the start of the pipe buffer. PR: 15235 Reviewed by: Matt Dillon <dillon@FreeBSD.org> Revision Changes Path 1.59 +65 -24 src/sys/kern/sys_pipe.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912130255.SAA67596>