Subject: Re: [WTF?] random test in netlink_sendmsg()

From: Al Viro <[email-masked]>
Date: Sat, 13 Dec 2014 01:54:15 +0000

On Fri, Dec 12, 2014 at 08:07:58PM -0500, David Miller wrote:
> From: Al Viro <[email-masked]>
> Date: Fri, 12 Dec 2014 21:32:43 +0000
> 
> > What do we want sendmsg(fd, &msg, 0) to do when fd is AF_NETLINK socket
> > that had setsockopt(fd, SOL_NETLINK, NETLINK_TX_RING, ...) successfully done
> > to it and msg.msg_iovlen is 0?
> 
> We had a similar issue with msg_name/msg_namelen and we ended up saying
> that if msg_namelen is zero then we force msg_name to NULL.

Hmm...  The thing is, there might be legitimate users with empty payload,
making this call for the sake of SCM_CREDENTIALS.  IOW, what should happen
if we have
	msg_iovlen = 0
	msg_iov = <anything>
	msg_control = &cmsg
	msg_controllen = cmsg_len
Sure, both paths will pass creds, but what about the payload?  And the number
of datagram actually transmitted, for that matter?