summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-01-05 18:09:13 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-01-05 18:09:13 +0100
commitcbce69e70dc4b04fefcc7257e593733b8b03856c (patch)
tree4304585996e3a547cce0bd204e90ee27a7d964aa /sysdeps/mach/hurd/setitimer.c
parenthtl: Add __errno_location and __h_errno_location (diff)
downloadglibc-cbce69e70dc4b04fefcc7257e593733b8b03856c.tar.gz
glibc-cbce69e70dc4b04fefcc7257e593733b8b03856c.tar.bz2
glibc-cbce69e70dc4b04fefcc7257e593733b8b03856c.zip
hurd: Fix message reception for timer_thread
Without a proper size, we get MACH_RCV_TOO_LARGE instead of MACH_MSG_SUCCESS. * sysdeps/mach/hurd/setitimer.c (timer_thread): Add return_code_type field to received message, and set the receive size in __mach_msg call.
Diffstat (limited to 'sysdeps/mach/hurd/setitimer.c')
-rw-r--r--sysdeps/mach/hurd/setitimer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/mach/hurd/setitimer.c b/sysdeps/mach/hurd/setitimer.c
index 4a6fd1fe33..b16f4ddd5d 100644
--- a/sysdeps/mach/hurd/setitimer.c
+++ b/sysdeps/mach/hurd/setitimer.c
@@ -80,6 +80,7 @@ timer_thread (void)
struct
{
mach_msg_header_t header;
+ mach_msg_type_t return_code_type;
error_t return_code;
} msg;
@@ -89,7 +90,7 @@ timer_thread (void)
_hurd_itimerval. */
err = __mach_msg (&msg.header,
MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
- 0, 0, _hurd_itimer_port,
+ 0, sizeof(msg), _hurd_itimer_port,
_hurd_itimerval.it_value.tv_sec * 1000
+ _hurd_itimerval.it_value.tv_usec / 1000,
MACH_PORT_NULL);