Thread (11 messages) flat view 11 messages, 5 authors, 2021-03-18

Re: [PATCH v4 RESEND net-next] net: socket: use BIT() for MSG_*

From: David Miller <davem@davemloft.net>
Date: 2021-03-17 16:40:37
Also in: lkml

From: Menglong Dong <redacted>
Date: Wed, 17 Mar 2021 16:21:14 +0800
Hello,

On Wed, Mar 17, 2021 at 9:38 AM Guenter Roeck [off-list ref] wrote:
quoted
On Wed, Mar 17, 2021 at 01:02:51AM +0200, Andy Shevchenko wrote:
quoted
On Wednesday, March 17, 2021, Guenter Roeck [off-list ref] wrote:
...
quoted
The problem is in net/packet/af_packet.c:packet_recvmsg(). This function,
as well as all other rcvmsg functions, is declared as

static int packet_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
                          int flags)

MSG_CMSG_COMPAT (0x80000000) is set in flags, meaning its value is negative.
This is then evaluated in

       if (flags & ~(MSG_PEEK|MSG_DONTWAIT|MSG_TRUNC|MSG_CMSG_COMPAT|MSG_ERRQUEUE))
                goto out;
So what should I do? Revert this patch? Or fix the usages of 'flags'?
I already reverted this patch from net-next to fix the regression.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help