minix/servers
Thomas Veerman 26ec619a30 VFS: fix filp reuse race
Pipes consist of two filps (read filp and write filp) and a shared
vnode. When the writer leaves the filp reference count drops to
zero and subsequent find_filp()s should not find the filp when a
reader looks for it and the reader gets EOF. However, the pipe()
system call tries to find two filps, marks them in use, and only
after a successful node creation on PFS, overwrites the shared
vnode with the new vnode. Consequently, this leaves a small window
where a just closed 'pipe write filp' gets reused and marked as
present, before becoming the actual new 'pipe write filp' for a new
pipe. A reader for the old pipe will think a writer is present and
wait for that writer to write something or to leave; both actions
should revive the suspended reader. This will never happen and the
reader will be stuck forever.
2012-04-13 13:22:57 +00:00
..
devman Kernel/servers/drivers: resolve a few warnings 2012-03-30 16:55:06 +02:00
ds retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
ext2 retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
hgfs Create SFFS library out of HGFS 2012-04-09 18:08:26 +02:00
inet retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
init Remove obsolete INSTALLFLAGS from makefiles 2012-02-16 23:26:38 +01:00
ipc retire PUBLIC, PRIVATE and FORWARD 2012-03-25 21:58:14 +02:00
is retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
iso9660fs retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
lwip LWIP,NETSOCK - lwip uses asynchronous protocol 2012-03-02 15:44:48 +00:00
mfs retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
pfs retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
pm retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
procfs retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
rs retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
sched retire _ANSI and <minix/ansi.h> 2012-03-25 21:58:27 +02:00
vbfs Add VBFS: VirtualBox Shared Folder File System 2012-04-11 00:27:48 +02:00
vfs VFS: fix filp reuse race 2012-04-13 13:22:57 +00:00
vm vm: add MAP_FIXED 2012-04-12 15:01:36 +02:00
Makefile Add VBFS: VirtualBox Shared Folder File System 2012-04-11 00:27:48 +02:00
Makefile.inc Full switch to clang/ELF. Drop ack. Simplify. 2012-02-14 14:52:02 +01:00