summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>1996-05-01 01:01:48 +0000
committerMiles Bader <miles@gnu.org>1996-05-01 01:01:48 +0000
commitd3dc731b4741072b890428b1e125228fcb8bf4a2 (patch)
tree2635ca30b17805379671788e3f0cf0b031227937
parent06f82985cb4ea5b421321c07ee2215644656de0a (diff)
(describe_number): Correctly allocate space in DESCRIPTION for the digits in I.
-rw-r--r--hurd/hurdsig.c5
-rw-r--r--hurd/report-wait.c13
2 files changed, 13 insertions, 5 deletions
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 3ba54290fe..a84e7bc54e 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -233,6 +233,9 @@ interrupted_reply_port_location (struct machine_thread_all_state *thread_state,
#include <hurd/sigpreempt.h>
#include "intr-msg.h"
+/* Timeout on interrupt_operation calls. */
+mach_msg_timeout_t _hurdsig_interrupt_timeout = 1000;
+
/* SS->thread is suspended.
Abort any interruptible RPC operation the thread is doing.
@@ -299,7 +302,7 @@ _hurdsig_abort_rpcs (struct hurd_sigstate *ss, int signo, int sigthread,
mach_port_t *reply = interrupted_reply_port_location (state,
sigthread);
- error_t err = __interrupt_operation (intr_port);
+ error_t err = __interrupt_operation (intr_port, _hurdsig_interrupt_timeout);
if (err)
{
diff --git a/hurd/report-wait.c b/hurd/report-wait.c
index 521c5220b9..35cf7c1a61 100644
--- a/hurd/report-wait.c
+++ b/hurd/report-wait.c
@@ -29,15 +29,20 @@ Cambridge, MA 02139, USA. */
static void
describe_number (string_t description, const char *flavor, int i)
{
+ int j;
char *p = __stpcpy (description, flavor);
- p += i / 10 + 1;
- *p = '\0';
+
+ /* Allocate space for the number at the end of DESCRIPTION. */
+ for (j = i; j >= 10; j /= 10)
+ p++;
+ p[1] = '\0';
+
do
{
- *--p = '0' + i % 10;
+ *p-- = '0' + i % 10;
i /= 10;
} while (i != 0);
- assert (p[-1] == '#');
+ assert (*p == '#');
}
static void