Subject: Re: [PATCH v2 01/18] netlink: make the check for "send from tx_ring" deterministic

From: Sergei Shtylyov <[email-masked]>
Date: Mon, 02 Feb 2015 16:14:16 +0300

Hello.

On 2/2/2015 10:59 AM, Al Viro wrote:

> From: Al Viro <[email-masked]>

> As it is, zero msg_iovlen means that the first iovec in the kernel
> array of iovecs is left uninitialized, so checking if its ->iov_base
> is NULL is random.  Since the real users of that thing are doing
> sendto(fd, NULL, 0, ...), they are getting msg_iovlen = 1 and
> msg_iov[0] = {NULL, 0}, which is what this test is trying to catch.
> As suggested by davem, let's just check that msg_iovlen was 1 and
> msg_iov[0].iov_base was NULL - _that_ is well-defined and it catches
> what we want to catch.

> Signed-off-by: Al Viro <[email-masked]>
> ---
>   net/netlink/af_netlink.c | 4 ++++
>   1 file changed, 4 insertions(+)

> diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
> index a36777b..af51d58 100644
> --- a/net/netlink/af_netlink.c
> +++ b/net/netlink/af_netlink.c
> @@ -2298,7 +2298,11 @@ static int netlink_sendmsg(struct kiocb *kiocb, struct socket *sock,
>   			goto out;
>   	}
>
> +        /* It's a really convoluted way for userland to ask for mmaped
> +	 * sendmsg(), but that's what we've got...  */

    Hmm, not sure why DaveM hasn't commented on this broken comment formatting 
(perhaps he was going to fix it while applying?). The preferred comment style 
in the networking code is:

/* bla
  * bla
  */

WBR, Sergei