summaryrefslogtreecommitdiff
path: root/debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-11-21 06:03:02 +0100
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-11-21 06:03:02 +0100
commitbc2df54e33fd813aeaa43ef038a8b88446d6cb54 (patch)
tree0fb789de28e02b2feef21e51b054fba78134080b /debian/patches/startup-0005-startup-do-not-pass-signals-on-to-the-child.patch
parentf8b1a9ceb00c1729c6b9aaa74b503d01f0becf57 (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.patch251
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
-