Bug 896 - Avoid race conditions reading message from exited process
authorColin Walters <walters@verbum.org>
Sat, 11 Jul 2009 01:33:02 +0000 (21:33 -0400)
committerColin Walters <walters@verbum.org>
Mon, 13 Jul 2009 17:07:12 +0000 (13:07 -0400)
commit0e36cdd54964c4012acec2bb8e598b85e82d2846
tree7e9dd7470edac5ecccdf69bc3c5cb8f3cb425a6e
parent6b163e95e7a2318a98c16c0d0944337e38e62efa
Bug 896 - Avoid race conditions reading message from exited process

Patch based on extensive work from Michael Meeks <michael.meeks@novell.com>,
thanks to Dafydd Harries <dafydd.harries@collabora.co.uk>,
Kimmo Hämäläinen <kimmo.hamalainen@nokia.com> and others.

The basic idea with this bug is that we effectively ignore errors
on write.  Only when we're done reading from a connection do we
close down a connection.  This avoids a race condition where
if a process (such as dbus-send) exited while we still had
data to read in the buffer, we'd miss that data.
dbus/dbus-sysdeps.c
dbus/dbus-sysdeps.h
dbus/dbus-transport-socket.c
dbus/dbus-watch.c
dbus/dbus-watch.h