From 73b9315e56f5f635eaf82a08271e8f462b731972 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 16 Aug 2006 11:44:52 +0000 Subject: Don't forget to unblock signals for ppoll() --- hidd/fakehid.c | 5 +++++ hidd/main.c | 5 +++++ pand/main.c | 5 +++++ rfcomm/main.c | 10 ++++++++++ sdpd/main.c | 5 +++++ tools/ciptool.c | 5 +++++ 6 files changed, 35 insertions(+) diff --git a/hidd/fakehid.c b/hidd/fakehid.c index 70eba3b4..be1f29b9 100644 --- a/hidd/fakehid.c +++ b/hidd/fakehid.c @@ -320,6 +320,11 @@ int epox_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel) sigaction(SIGHUP, &sa, NULL); sigfillset(&sigs); + sigdelset(&sigs, SIGCHLD); + sigdelset(&sigs, SIGPIPE); + sigdelset(&sigs, SIGTERM); + sigdelset(&sigs, SIGINT); + sigdelset(&sigs, SIGHUP); p.fd = sk; p.events = POLLIN | POLLERR | POLLHUP; diff --git a/hidd/main.c b/hidd/main.c index cd1dceb9..7c478030 100644 --- a/hidd/main.c +++ b/hidd/main.c @@ -337,6 +337,11 @@ static void run_server(int ctl, int csk, int isk, uint8_t subclass, int nosdp, i int err, ncsk, nisk; sigfillset(&sigs); + sigdelset(&sigs, SIGCHLD); + sigdelset(&sigs, SIGPIPE); + sigdelset(&sigs, SIGTERM); + sigdelset(&sigs, SIGINT); + sigdelset(&sigs, SIGHUP); p[0].fd = csk; p[0].events = POLLIN | POLLERR | POLLHUP; diff --git a/pand/main.c b/pand/main.c index 026a879d..07c3decd 100644 --- a/pand/main.c +++ b/pand/main.c @@ -235,6 +235,11 @@ static int w4_hup(int sk) int n; sigfillset(&sigs); + sigdelset(&sigs, SIGCHLD); + sigdelset(&sigs, SIGPIPE); + sigdelset(&sigs, SIGTERM); + sigdelset(&sigs, SIGINT); + sigdelset(&sigs, SIGHUP); while (!terminate) { pf.fd = sk; diff --git a/rfcomm/main.c b/rfcomm/main.c index 5167d497..9baf8533 100644 --- a/rfcomm/main.c +++ b/rfcomm/main.c @@ -385,6 +385,11 @@ static void cmd_connect(int ctl, int dev, bdaddr_t *bdaddr, int argc, char **arg sigaction(SIGHUP, &sa, NULL); sigfillset(&sigs); + sigdelset(&sigs, SIGCHLD); + sigdelset(&sigs, SIGPIPE); + sigdelset(&sigs, SIGTERM); + sigdelset(&sigs, SIGINT); + sigdelset(&sigs, SIGHUP); p.fd = fd; p.events = POLLERR | POLLHUP; @@ -506,6 +511,11 @@ static void cmd_listen(int ctl, int dev, bdaddr_t *bdaddr, int argc, char **argv sigaction(SIGHUP, &sa, NULL); sigfillset(&sigs); + sigdelset(&sigs, SIGCHLD); + sigdelset(&sigs, SIGPIPE); + sigdelset(&sigs, SIGTERM); + sigdelset(&sigs, SIGINT); + sigdelset(&sigs, SIGHUP); p.fd = fd; p.events = POLLERR | POLLHUP; diff --git a/sdpd/main.c b/sdpd/main.c index fbc7f5e6..5e415f4a 100644 --- a/sdpd/main.c +++ b/sdpd/main.c @@ -457,6 +457,11 @@ int main(int argc, char *argv[]) signal(SIGPIPE, SIG_IGN); sigfillset(&sigs); + sigdelset(&sigs, SIGINT); + sigdelset(&sigs, SIGTERM); + sigdelset(&sigs, SIGABRT); + sigdelset(&sigs, SIGQUIT); + sigdelset(&sigs, SIGPIPE); for (;;) { int num, nfd; diff --git a/tools/ciptool.c b/tools/ciptool.c index 3f4b113f..99add635 100644 --- a/tools/ciptool.c +++ b/tools/ciptool.c @@ -382,6 +382,11 @@ static void cmd_loopback(int ctl, bdaddr_t *bdaddr, int argc, char **argv) sigaction(SIGHUP, &sa, NULL); sigfillset(&sigs); + sigdelset(&sigs, SIGCHLD); + sigdelset(&sigs, SIGPIPE); + sigdelset(&sigs, SIGTERM); + sigdelset(&sigs, SIGINT); + sigdelset(&sigs, SIGHUP); p.fd = sk; p.events = POLLERR | POLLHUP; -- cgit