On Tue, Nov 07, 2017 at 09:12:31AM -0500, Jeff Layton wrote: > On Fri, 2017-06-30 at 14:23 +0100, Stefan Hajnoczi wrote: > > @@ -1417,6 +1564,10 @@ static struct svc_sock *svc_setup_socket(struct svc_serv *serv, > > /* Initialize the socket */ > > if (sock->type == SOCK_DGRAM) > > svc_udp_init(svsk, serv); > > +#ifdef CONFIG_SUNRPC_XPRT_VSOCK > > + else if (inet->sk_family == AF_VSOCK) > > + svc_vsock_init(svsk, serv); > > +#endif > > else > > svc_tcp_init(svsk, serv); > > The above conditional is a bit of a mess and doesn't really handle the > case where the upper layer might pass it something non-sensical (i.e. > SOCK_DGRAM + AF_VSOCK). > > I think this should vet both values and return ERR_PTR(-EINVAL) if it's > not right. Maybe a switch statement on the address family and then check > the sock->type in each? We can afford to code a little defensively here. Good idea, will fix in v4.
Attachment:
signature.asc
Description: PGP signature