summaryrefslogtreecommitdiff
path: root/debian/patches/fix-remount0001-fix-set-name.patch
blob: 249baca9598f542f3fc827a4296d908f1a4a39ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
From ee6d233d247808b254649478a975c92a4b29b9ab Mon Sep 17 00:00:00 2001
From: Justus Winter <4winter@informatik.uni-hamburg.de>
Date: Sun, 12 Jul 2015 14:46:50 +0200
Subject: [PATCH hurd] fix set name

---
 exec/exec.c       | 47 ++++++++++++++++++++++++++++++-----------------
 startup/startup.c |  1 -
 2 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/exec/exec.c b/exec/exec.c
index ee500d7..59270dd 100644
--- a/exec/exec.c
+++ b/exec/exec.c
@@ -686,6 +686,33 @@ finish (struct execdata *e, int dealloc_file)
     }
 }
 
+static void
+set_name (task_t task, const char *exec_name, pid_t pid)
+{
+  char *name;
+  int size;
+
+  if (pid)
+    size = asprintf (&name, "%s(%d)", exec_name, pid);
+  else
+    size = asprintf (&name, "%s", exec_name);
+
+  if (size > 0)
+    {
+      /* This is an internal implementational detail of the gnumach kernel.  */
+#define TASK_NAME_SIZE	32
+      if (size < TASK_NAME_SIZE)
+	task_set_name (task, name);
+      else
+	{
+	  char *abbr = name + size - TASK_NAME_SIZE + 1;
+	  abbr[0] = abbr[1] = abbr[2] = '.';
+	  task_set_name (task, abbr);
+	}
+#undef TASK_NAME_SIZE
+      free (name);
+    }
+}
 
 /* Load the file.  */
 static void
@@ -1173,24 +1200,10 @@ do_exec (file_t file,
       if (e.error)
 	goto out;
 
-      char *name;
-      int size = asprintf (&name, "%s(%d)", argv, pid);
-      if (size > 0)
-	{
-/* This is an internal implementational detail of the gnumach kernel.  */
-#define TASK_NAME_SIZE	32
-	  if (size < TASK_NAME_SIZE)
-	    task_set_name (newtask, name);
-	  else
-	    {
-	      char *abbr = name + size - TASK_NAME_SIZE + 1;
-	      abbr[0] = abbr[1] = abbr[2] = '.';
-	      task_set_name (newtask, abbr);
-	    }
-#undef TASK_NAME_SIZE
-	  free (name);
-	}
+      set_name (newtask, argv, pid);
     }
+  else
+    set_name (newtask, argv, 0);
 
   /* Create the initial thread.  */
   e.error = thread_create (newtask, &thread);