dbus-spawn: set SIGPIPE to SIG_IGN before activating services
authorRay Strode <rstrode@redhat.com>
Tue, 16 Oct 2012 18:38:28 +0000 (14:38 -0400)
committerRay Strode <rstrode@redhat.com>
Tue, 16 Oct 2012 18:44:55 +0000 (14:44 -0400)
commit90f939f155bd120f44ff3906296707a6c00cd462
treebe92759971395e6e481ed6929bb8bb22f8e73fa5
parentd728fdc655f17031da3bb129ab2fd17dadf0fe3a
dbus-spawn: set SIGPIPE to SIG_IGN before activating services

dbus's service activation code sets SIGPIPE to SIG_DFL as a
sort of poor man's prctl(... PR_SET_PDEATHSIG) to detect when
the parent goes away.

It neglects to reignore the infamous signal before performing
activation, however.

This means if, for instance, journald is restarted all
services activated after it will die with SIGPIPE when logging
messages unless they explicitly ignore SIGPIPE themselves.

This commit changes dbus's service activation code to correctly
ignore SIGPIPE to protect activated services from a gruesome,
premature death.

Reviewed-by: Lennart Poettering <lennart@poettering.net>
https://bugzilla.redhat.com/show_bug.cgi?id=839258
dbus/dbus-spawn.c