The branch, master has been updated via 00e378f17c39c52689601bc622b9cd78a0cdce12 (commit) via d13dfbeb6c6ab5b20277439da5b95f1a7f2850eb (commit) from f917044ec032ad3a3cdc6030f5c63274d7327c2e (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 00e378f17c39c52689601bc622b9cd78a0cdce12 Author: Stefan Metzmacher <me...@samba.org> Date: Sun Sep 20 23:29:34 2009 +0200 s3:lib/select: don't overwrite errno in the signal handler metze commit d13dfbeb6c6ab5b20277439da5b95f1a7f2850eb Author: Stefan Metzmacher <me...@samba.org> Date: Mon Sep 21 03:16:18 2009 +0200 tevent: make sure we don't set errno within the signal handler function. metze ----------------------------------------------------------------------- Summary of changes: lib/tevent/tevent_signal.c | 3 +++ source3/lib/select.c | 4 ++++ 2 files changed, 7 insertions(+), 0 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/tevent/tevent_signal.c b/lib/tevent/tevent_signal.c index ef9c0cf..0ca2a27 100644 --- a/lib/tevent/tevent_signal.c +++ b/lib/tevent/tevent_signal.c @@ -85,6 +85,7 @@ static void tevent_common_signal_handler(int signum) ssize_t res; struct tevent_common_signal_list *sl; struct tevent_context *ev = NULL; + int saved_errno = errno; SIG_INCREMENT(sig_state->signal_count[signum]); SIG_INCREMENT(sig_state->got_signal); @@ -103,6 +104,8 @@ static void tevent_common_signal_handler(int signum) ev = sl->se->event_ctx; } } + + errno = saved_errno; } #ifdef SA_SIGINFO diff --git a/source3/lib/select.c b/source3/lib/select.c index a58530a..b5443ff 100644 --- a/source3/lib/select.c +++ b/source3/lib/select.c @@ -39,11 +39,15 @@ static volatile unsigned pipe_written, pipe_read; void sys_select_signal(char c) { + int saved_errno = errno; + if (!initialised) return; if (pipe_written > pipe_read+256) return; if (write(select_pipe[1], &c, 1) == 1) pipe_written++; + + errno = saved_errno; } /******************************************************************* -- Samba Shared Repository