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>
Tue, 14 Jul 2009 19:41:57 +0000 (15:41 -0400)
commit87ddff6b24d9b9d4bba225c33890db25022d8cbe
tree6354abb89476866e7878c3f13a7d6b4b62a5f51b
parent96e785bb0614dc9ebbf6aebe12797d93a1b76b14
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.
(cherry picked from commit 0e36cdd54964c4012acec2bb8e598b85e82d2846)
dbus/dbus-sysdeps.c
dbus/dbus-sysdeps.h
dbus/dbus-transport-socket.c
dbus/dbus-watch.c
dbus/dbus-watch.h