summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorJustus Winter <justus@gnupg.org>2016-02-22 19:23:14 +0100
committerJustus Winter <justus@gnupg.org>2016-02-22 19:23:14 +0100
commitfdf8728e043629f6773a925b99152b937b68ab33 (patch)
tree068e70739943ab6e37e8cf4468357ef4e53188eb /debian
parente3a3df72ef792f591d5c07fedf5ac4c82b78b6e5 (diff)
add patch series
Diffstat (limited to 'debian')
-rw-r--r--debian/patches/mount-fix0001-utils-mount-start-translators-with-stderr-closed.patch60
-rw-r--r--debian/patches/series1
2 files changed, 61 insertions, 0 deletions
diff --git a/debian/patches/mount-fix0001-utils-mount-start-translators-with-stderr-closed.patch b/debian/patches/mount-fix0001-utils-mount-start-translators-with-stderr-closed.patch
new file mode 100644
index 00000000..8efdbc36
--- /dev/null
+++ b/debian/patches/mount-fix0001-utils-mount-start-translators-with-stderr-closed.patch
@@ -0,0 +1,60 @@
+From 234568d0c683d35362a17dd44b76472c405fbd86 Mon Sep 17 00:00:00 2001
+From: Justus Winter <justus@gnupg.org>
+Date: Mon, 22 Feb 2016 19:18:05 +0100
+Subject: [PATCH hurd] utils/mount: start translators with stderr closed
+
+Apparently some users of 'mount' do not cope with any output being
+generated from the spawned translator.
+
+* utils/mount.c (do_mount): Start translators with stderr closed.
+---
+ utils/mount.c | 33 ++++++++++++++++++++++++++++++---
+ 1 file changed, 30 insertions(+), 3 deletions(-)
+
+diff --git a/utils/mount.c b/utils/mount.c
+index c5736ba..5fa35bc 100644
+--- a/utils/mount.c
++++ b/utils/mount.c
+@@ -420,9 +420,36 @@ do_mount (struct fs *fs, int remount)
+ }
+
+ explain ("settrans -a");
+- err = fshelp_start_translator (open_node, NULL, fsopts,
+- fsopts, fsopts_len, timeout,
+- &active_control);
++ {
++ mach_port_t ports[INIT_PORT_MAX];
++ mach_port_t fds[STDERR_FILENO + 1];
++ int ints[INIT_INT_MAX];
++ int i;
++
++ for (i = 0; i < INIT_PORT_MAX; i++)
++ ports[i] = MACH_PORT_NULL;
++ for (i = 0; i < STDERR_FILENO + 1; i++)
++ fds[i] = MACH_PORT_NULL;
++ memset (ints, 0, INIT_INT_MAX * sizeof(int));
++
++ ports[INIT_PORT_CWDIR] = getcwdir ();
++ ports[INIT_PORT_CRDIR] = getcrdir ();
++ ports[INIT_PORT_AUTH] = getauth ();
++
++ err = fshelp_start_translator_long (open_node, NULL,
++ fsopts, fsopts, fsopts_len,
++ fds, MACH_MSG_TYPE_COPY_SEND,
++ STDERR_FILENO + 1,
++ ports, MACH_MSG_TYPE_COPY_SEND,
++ INIT_PORT_MAX,
++ ints, INIT_INT_MAX,
++ geteuid (),
++ timeout, &active_control);
++ for (i = 0; i < INIT_PORT_MAX; i++)
++ mach_port_deallocate (mach_task_self (), ports[i]);
++ for (i = 0; i <= STDERR_FILENO; i++)
++ mach_port_deallocate (mach_task_self (), fds[i]);
++ }
+ /* If ERR is due to a problem opening the translated node, we print
+ that name, otherwise, the name of the translator. */
+ if (open_err)
+--
+2.1.4
+
diff --git a/debian/patches/series b/debian/patches/series
index 0a01d700..f7d070c0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -38,3 +38,4 @@ exec_filename0004-This-patch-is-an-amendment-of-exec_filename_exec.pat.patch
gpg0001-trans-add-transparent-GnuPG-translator.patch
crash0001-xxx-crash-logging-works.patch
ioctl-fix0001-fix-Xioctl-proto.defs-creation.patch
+mount-fix0001-utils-mount-start-translators-with-stderr-closed.patch