hurd: Fix restoring message to be retried

save_data stores the start of the original message to be retried,
overwritten by the EINTR reply. In 64b builds the overwrite is however
rounded up to the 64b pointer size, so we have to save more than just
the 32b err.

Thanks a lot to Luca Dariz for the investigation!
This commit is contained in:
Samuel Thibault 2024-07-13 17:00:55 +02:00
parent 4b2a1b602f
commit c8b4ce0b36

View File

@ -42,7 +42,10 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
struct clobber struct clobber
{ {
mach_msg_type_t type; mach_msg_type_t type;
error_t err; union {
error_t err;
uintptr_t align;
};
}; };
union msg union msg
{ {