connection: Fix sendmsg() on FreeBSD
authorPhilip Withnall <philip@tecnocode.co.uk>
Mon, 3 Nov 2014 09:49:03 +0000 (09:49 +0000)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Wed, 5 Nov 2014 12:13:50 +0000 (14:13 +0200)
It expects ((msg_controllen == 0) == (msg_control == NULL)), and returns
EINVAL otherwise. It can't hurt to be tidy about things on other platforms
either though.

See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=99356#c5

Signed-off-by: Philip Withnall <philip at tecnocode.co.uk>
Signed-off-by: Karsten Otto <ottoka at posteo.de>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
src/connection.c

index c5daca6..f9f2474 100644 (file)
@@ -290,7 +290,7 @@ wl_connection_flush(struct wl_connection *connection)
                msg.msg_namelen = 0;
                msg.msg_iov = iov;
                msg.msg_iovlen = count;
-               msg.msg_control = cmsg;
+               msg.msg_control = (clen > 0) ? cmsg : NULL;
                msg.msg_controllen = clen;
                msg.msg_flags = 0;