Message ID | 20240508074457.12367-2-sgarzare@redhat.com |
---|---|
State | New |
Headers | show |
Series | vhost-user: support any POSIX system (tested on macOS, FreeBSD, OpenBSD) | expand |
On Wed, May 08, 2024 at 09:44:45AM +0200, Stefano Garzarella wrote: > On some OS (e.g. macOS) sendmsg() returns -1 (errno EINVAL) if > the `struct msghdr` has the field `msg_controllen` set to 0, but > `msg_control` is not NULL. > > Reviewed-by: Eric Blake <eblake@redhat.com> > Reviewed-by: David Hildenbrand <david@redhat.com> > Reviewed-by: Philippe Mathieu-Daud?? <philmd@linaro.org> Philippe's name has got mangled here > Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> > --- > subprojects/libvhost-user/libvhost-user.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvhost-user/libvhost-user.c > index a879149fef..22bea0c775 100644 > --- a/subprojects/libvhost-user/libvhost-user.c > +++ b/subprojects/libvhost-user/libvhost-user.c > @@ -632,6 +632,7 @@ vu_message_write(VuDev *dev, int conn_fd, VhostUserMsg *vmsg) > memcpy(CMSG_DATA(cmsg), vmsg->fds, fdsize); > } else { > msg.msg_controllen = 0; > + msg.msg_control = NULL; > } > > do { > -- > 2.45.0 > With regards, Daniel
On Wed, May 08, 2024 at 09:57:13AM GMT, Daniel P. Berrangé wrote: >On Wed, May 08, 2024 at 09:44:45AM +0200, Stefano Garzarella wrote: >> On some OS (e.g. macOS) sendmsg() returns -1 (errno EINVAL) if >> the `struct msghdr` has the field `msg_controllen` set to 0, but >> `msg_control` is not NULL. >> >> Reviewed-by: Eric Blake <eblake@redhat.com> >> Reviewed-by: David Hildenbrand <david@redhat.com> >> Reviewed-by: Philippe Mathieu-Daud?? <philmd@linaro.org> > >Philippe's name has got mangled here Thank you for bringing this to my attention and helping me solve it off-list. It should be fixed with the next posting! Stefano > >> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> >> --- >> subprojects/libvhost-user/libvhost-user.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvhost-user/libvhost-user.c >> index a879149fef..22bea0c775 100644 >> --- a/subprojects/libvhost-user/libvhost-user.c >> +++ b/subprojects/libvhost-user/libvhost-user.c >> @@ -632,6 +632,7 @@ vu_message_write(VuDev *dev, int conn_fd, VhostUserMsg *vmsg) >> memcpy(CMSG_DATA(cmsg), vmsg->fds, fdsize); >> } else { >> msg.msg_controllen = 0; >> + msg.msg_control = NULL; >> } >> >> do { >> -- >> 2.45.0 >> > >With regards, >Daniel >-- >|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| >|: https://libvirt.org -o- https://fstop138.berrange.com :| >|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| >
On 8/5/24 09:44, Stefano Garzarella wrote: > On some OS (e.g. macOS) sendmsg() returns -1 (errno EINVAL) if > the `struct msghdr` has the field `msg_controllen` set to 0, but > `msg_control` is not NULL. > > Reviewed-by: Eric Blake <eblake@redhat.com> > Reviewed-by: David Hildenbrand <david@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> > --- > subprojects/libvhost-user/libvhost-user.c | 1 + > 1 file changed, 1 insertion(+) Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvhost-user/libvhost-user.c index a879149fef..22bea0c775 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -632,6 +632,7 @@ vu_message_write(VuDev *dev, int conn_fd, VhostUserMsg *vmsg) memcpy(CMSG_DATA(cmsg), vmsg->fds, fdsize); } else { msg.msg_controllen = 0; + msg.msg_control = NULL; } do {