]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
hurd: Fix message reception for timer_thread
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Sun, 5 Jan 2020 17:09:13 +0000 (18:09 +0100)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Sun, 5 Jan 2020 17:09:13 +0000 (18:09 +0100)
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.

sysdeps/mach/hurd/setitimer.c

index 4a6fd1fe3394f25ef473733350ab875d27a2def8..b16f4ddd5da955b54b6764945f67d06555e5d2b5 100644 (file)
@@ -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);