SmartAudio/package/system/ubus/patches/001-fix_sendmsg_data_loss.p...

21 lines
590 B
Diff

--- a/ubusd.c
+++ b/ubusd.c
@@ -96,7 +96,7 @@ static int ubus_msg_writev(int fd, struc
.cmsg_type = SCM_RIGHTS,
},
};
- struct msghdr msghdr = {
+ volatile struct msghdr msghdr = {
.msg_iov = iov,
.msg_iovlen = ARRAY_SIZE(iov),
.msg_control = &fd_buf,
@@ -115,7 +115,7 @@ static int ubus_msg_writev(int fd, struc
iov[1].iov_base = (char *) ub->data;
iov[1].iov_len = ub->len;
- return sendmsg(fd, &msghdr, 0);
+ return sendmsg(fd, (void *)&msghdr, 0);
} else {
offset -= sizeof(ub->hdr);
return write(fd, ((char *) ub->data) + offset, ub->len - offset);