Re: [PATCH v2] x86: Fix x32 System V message queue syscalls

From: Harald van Dijk
Date: Mon Jul 31 2023 - 20:49:08 EST


On 06/12/2020 22:55, Andy Lutomirski wrote:
On Sat, Dec 5, 2020 at 4:01 PM Jessica Clarke <jrtc27@xxxxxxxxxx> wrote:


Ping?

Can you submit patches implementing my proposal? One is your existing
patch plus fixing struct msghdr, with Cc: stable@xxxxxxxxxxxxxxx at
the bottom. The second is a removal of struct msghdr from uapi,
moving it into include/inux (no uapi) if needed. The second should
not cc stable.

Hi,

This looks like it was forgotten, but it is still needed. Jessica, are you interested in submitting the requested change? If not, would it be okay if I do so? I have been running this locally for a long time now.

There is one complication that I think has not been mentioned yet: when _GNU_SOURCE is defined, glibc does provide a definition of struct msghdr in <sys/msg.h> with a field "__syscall_slong_t mtype;". This makes it slightly more likely that there is code out there in the wild that works fine with current kernels and would be broken by the fix. Given how rare x32 is, and how rare message queues are, this may still be acceptable, but I am mentioning it just in case this would cause a different approach to be preferred. And whatever is done, a fix should also be submitted to glibc.

(musl define struct msghdr as well, but defines mtype unconditionally as having type long, so if this approach is still preferred, needs no changes.)

Cheers,
Harald van Dijk