summaryrefslogtreecommitdiff
path: root/debian/patches/fixes0003-random-improve-error-handling.patch
blob: 9a243ac5750457e221c16a536eb71ffddc49f3c0 (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
From 5f7601f47a3fd8957a52c03f1135534fc2232539 Mon Sep 17 00:00:00 2001
From: Justus Winter <4winter@informatik.uni-hamburg.de>
Date: Fri, 6 Nov 2015 12:00:31 +0100
Subject: [PATCH hurd 3/4] random: improve error handling

* random/random.c (arrange_shutdown_notification): Improve error
handling.
(main): Display warning if arranging the shutdown notification failed.
---
 random/random.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/random/random.c b/random/random.c
index 9ade161..f483a5d 100644
--- a/random/random.c
+++ b/random/random.c
@@ -552,7 +552,7 @@ sigterm_handler (int signo)
   raise (SIGTERM);
 }
 
-void
+static error_t
 arrange_shutdown_notification ()
 {
   error_t err;
@@ -570,24 +570,26 @@ arrange_shutdown_notification ()
   err = ports_create_port (shutdown_notify_class, fsys->pi.bucket,
 			   sizeof (struct port_info), &pi);
   if (err)
-    return;
+    return err;
 
   procserver = getproc ();
-  if (!procserver)
-    return;
+  if (! MACH_PORT_VALID (procserver))
+    return EMIG_SERVER_DIED;
 
   err = proc_getmsgport (procserver, 1, &initport);
   mach_port_deallocate (mach_task_self (), procserver);
   if (err)
-    return;
+    return err;
 
   notify = ports_get_send_right (pi);
   ports_port_deref (pi);
-  startup_request_notification (initport, notify,
-				MACH_MSG_TYPE_MAKE_SEND,
-				program_invocation_short_name);
+  err = startup_request_notification (initport, notify,
+				      MACH_MSG_TYPE_MAKE_SEND,
+				      program_invocation_short_name);
+
   mach_port_deallocate (mach_task_self (), notify);
   mach_port_deallocate (mach_task_self (), initport);
+  return err;
 }
 
 
@@ -621,7 +623,9 @@ main (int argc, char **argv)
   if (err)
     error (3, err, "trivfs_startup");
 
-  arrange_shutdown_notification ();
+  err = arrange_shutdown_notification ();
+  if (err)
+    error (0, err, "Cannot request shutdown notification");
 
   /* Launch. */
   ports_manage_port_operations_multithread (fsys->pi.bucket, random_demuxer,
-- 
2.1.4