bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [hurd-amd64] ibus test failures


From: Samuel Thibault
Subject: Re: [hurd-amd64] ibus test failures
Date: Tue, 31 Dec 2024 14:52:53 +0100

Samuel Thibault, le mar. 31 déc. 2024 14:36:02 +0100, a ecrit:
> > I'm not sure how to fix it. Should the expectations of GLib be updated
> > to be aligned? Like below:
> > 
> > - if (size != G_CREDENTIALS_NATIVE_SIZE)
> > + if (size != CMSG_ALIGN(G_CREDENTIALS_NATIVE_SIZE))
> > 
> > Or should the macros be updated to use a 4 bytes size_t equivalent?
> 
> I'd rather say it's our socket layer which is aligning cmsg_len while
> it shouldn't, since it's CMSG_NXTHDR that aligns it to get to the next
> header.

Or perhaps it's glib itself that does the rounding, see

./gio/gsocket.c:        cmsg->cmsg_len = CMSG_LEN 
(g_socket_control_message_get_size (_message->control_messages[i]));


Adding CMSG_ALIGN to the glib size check seems odd to be because in the
linux case G_CREDENTIALS_NATIVE_SIZE is sizeof (struct ucred), which is
12bytes, so not 8byte-round and rounding would break the check on Linux.

You should probably check precisely the difference between Linux and
Hurd on these alignment questions at the various stages.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]