diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-11-21 06:03:02 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-11-21 06:03:02 +0100 |
commit | bc2df54e33fd813aeaa43ef038a8b88446d6cb54 (patch) | |
tree | 0fb789de28e02b2feef21e51b054fba78134080b /debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch | |
parent | f8b1a9ceb00c1729c6b9aaa74b503d01f0becf57 (diff) |
drop merged or obsoleted patches
Diffstat (limited to 'debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch')
-rw-r--r-- | debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch b/debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch deleted file mode 100644 index 33046438..00000000 --- a/debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch +++ /dev/null @@ -1,251 +0,0 @@ -From b7eed065f9118964dc875e4f03c8b07332b44a65 Mon Sep 17 00:00:00 2001 -From: Justus Winter <4winter@informatik.uni-hamburg.de> -Date: Wed, 18 Sep 2013 22:58:11 +0200 -Subject: [PATCH 5/8] startup: do not pass signals on to the child - -Formerly /hurd/startup would forward all signals to the child it -started (e.g. /libexec/runsystem). - -The motivation for doing so is not revealed in the comments, nor it is -mentioned in the history of the version control system. - -This patch removes the forwarding of signals to the child. - -* startup/startup.c (process_signal): Do not pass signals on to the child. -* startup/stubs.c: Remove file. -* startup/Makefile: Remove stubs.c. ---- - startup/Makefile | 2 +- - startup/startup.c | 49 ------------------- - startup/stubs.c | 139 ------------------------------------------------------ - 3 files changed, 1 insertion(+), 189 deletions(-) - delete mode 100644 startup/stubs.c - -diff --git a/startup/Makefile b/startup/Makefile -index 2d6b892..277fee4 100644 ---- a/startup/Makefile -+++ b/startup/Makefile -@@ -18,7 +18,7 @@ - dir := startup - makemode := server - --SRCS = startup.c stubs.c -+SRCS = startup.c - OBJS = $(SRCS:.c=.o) \ - startupServer.o notifyServer.o startup_replyUser.o msgServer.o \ - startup_notifyUser.o -diff --git a/startup/startup.c b/startup/startup.c -index 29269a6..4c91d4c 100644 ---- a/startup/startup.c -+++ b/startup/startup.c -@@ -904,9 +904,6 @@ frob_kernel_process (void) - static pid_t child_pid; /* PID of the child we run */ - static task_t child_task; /* and its (original) task port */ - --error_t send_signal (mach_port_t msgport, int signal, mach_port_t refport, -- mach_msg_timeout_t); -- - static void launch_something (const char *why); - - -@@ -965,52 +962,6 @@ process_signal (int signo) - } - } - } -- else -- { -- /* Pass the signal on to the child. */ -- task_t task; -- error_t err; -- -- err = proc_pid2task (procserver, child_pid, &task); -- if (err) -- { -- error (0, err, "proc_pid2task on %d", child_pid); -- task = child_task; -- } -- else -- { -- mach_port_deallocate (mach_task_self (), child_task); -- child_task = task; -- } -- -- if (signo == SIGKILL) -- { -- err = task_terminate (task); -- if (err != MACH_SEND_INVALID_DEST) -- error (0, err, "task_terminate"); -- } -- else -- { -- mach_port_t msgport; -- err = proc_getmsgport (procserver, child_pid, &msgport); -- if (err) -- error (0, err, "proc_getmsgport"); -- else -- { -- err = send_signal (msgport, signo, task, -- 500); /* Block only half a second. */ -- mach_port_deallocate (mach_task_self (), msgport); -- if (err) -- { -- error (0, err, "cannot send %s to child %d", -- strsignal (signo), child_pid); -- err = task_terminate (task); -- if (err != MACH_SEND_INVALID_DEST) -- error (0, err, "task_terminate"); -- } -- } -- } -- } - } - - /* Start the child program PROG. It is run via /libexec/console-run -diff --git a/startup/stubs.c b/startup/stubs.c -deleted file mode 100644 -index 5292ab6..0000000 ---- a/startup/stubs.c -+++ /dev/null -@@ -1,139 +0,0 @@ --/* By-hand stubs for some RPC calls -- Copyright (C) 1994,96,99,2000 Free Software Foundation, Inc. -- -- This program is free software; you can redistribute it and/or -- modify it under the terms of the GNU General Public License as -- published by the Free Software Foundation; either version 2, or (at -- your option) any later version. -- -- This program is distributed in the hope that it will be useful, but -- WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -- --#include <stdlib.h> --#include <hurd/hurd_types.h> --#include <mach.h> --#include <string.h> --#include <assert.h> -- --/* From hurd/msg.defs: */ --#define RPCID_SIG_POST 23000 -- -- --/* Send signal SIGNO to MSGPORT with REFPORT as reference. Don't -- block in any fashion. */ --error_t --send_signal (mach_port_t msgport, -- int signal, -- mach_port_t refport, -- mach_msg_timeout_t timeout) --{ -- error_t err; -- -- /* This message buffer might be modified by mach_msg in some error cases, -- so we cannot safely reuse a static buffer. */ -- struct -- { -- mach_msg_header_t head; -- mach_msg_type_t signaltype; -- int signal; -- mach_msg_type_t sigcode_type; -- natural_t sigcode; -- mach_msg_type_t refporttype; -- mach_port_t refport; -- } -- message = -- { -- { -- /* Message header: */ -- (MACH_MSGH_BITS_COMPLEX -- | MACH_MSGH_BITS (MACH_MSG_TYPE_COPY_SEND, -- MACH_MSG_TYPE_MAKE_SEND_ONCE)), /* msgh_bits */ -- sizeof message, /* msgh_size */ -- msgport, /* msgh_remote_port */ -- MACH_PORT_NULL, /* msgh_local_port */ -- 0, /* msgh_seqno */ -- RPCID_SIG_POST, /* msgh_id */ -- }, -- { -- /* Type descriptor for signo */ -- MACH_MSG_TYPE_INTEGER_32, /* msgt_name */ -- 32, /* msgt_size */ -- 1, /* msgt_number */ -- 1, /* msgt_inline */ -- 0, /* msgt_longform */ -- 0, /* msgt_deallocate */ -- 0, /* msgt_unused */ -- }, -- /* Signal number */ -- signal, -- /* Type descriptor for sigcode */ -- { -- MACH_MSG_TYPE_INTEGER_32, /* msgt_name */ -- 32, /* msgt_size */ -- 1, /* msgt_number */ -- 1, /* msgt_inline */ -- 0, /* msgt_longform */ -- 0, /* msgt_deallocate */ -- 0, /* msgt_unused */ -- }, -- /* Sigcode */ -- 0, -- { -- /* Type descriptor for refport */ -- MACH_MSG_TYPE_COPY_SEND, /* msgt_name */ -- 32, /* msgt_size */ -- 1, /* msgt_number */ -- 1, /* msgt_inline */ -- 0, /* msgt_longform */ -- 0, /* msgt_deallocate */ -- 0, /* msgt_unused */ -- }, -- /* Reference port */ -- refport -- }; -- -- err = mach_msg (&message.head, -- MACH_SEND_MSG|MACH_SEND_TIMEOUT, sizeof message, 0, -- MACH_PORT_NULL, timeout, MACH_PORT_NULL); -- -- switch (err) -- { -- case MACH_SEND_TIMED_OUT: -- /* The send could not complete in time. In this error case, the -- kernel has modified the message buffer in a pseudo-receive -- operation. That means our COPY_SEND refs might now be MOVE_SEND -- refs, in which case each has gained user ref accordingly. To -- avoid leaking those refs, we must clean up the buffer. We don't -- use mach_msg_destroy because it assumes the local/remote ports in -- the header have been reversed as from a real receive, while a -- pseudo-receive leaves them as they were. */ -- if (MACH_MSGH_BITS_REMOTE (message.head.msgh_bits) -- == MACH_MSG_TYPE_MOVE_SEND) -- mach_port_deallocate (mach_task_self (), -- message.head.msgh_remote_port); -- if (message.refporttype.msgt_name == MACH_MSG_TYPE_MOVE_SEND) -- mach_port_deallocate (mach_task_self (), message.refport); -- break; -- -- /* These are the other codes that mean a pseudo-receive modified -- the message buffer and we might need to clean up the send rights. -- None of them should be possible in our usage. */ -- case MACH_SEND_INTERRUPTED: -- case MACH_SEND_INVALID_NOTIFY: -- case MACH_SEND_NO_NOTIFY: -- case MACH_SEND_NOTIFY_IN_PROGRESS: -- assert_perror (err); -- break; -- -- default: /* Other errors are safe to ignore. */ -- break; -- } -- -- return err; --} --- -2.1.0 - |