|
@@ -449,6 +449,8 @@ static ssize_t qio_channel_socket_readv(QIOChannel *ioc,
|
|
char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)];
|
|
char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)];
|
|
int sflags = 0;
|
|
int sflags = 0;
|
|
|
|
|
|
|
|
+ memset(control, 0, CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS));
|
|
|
|
+
|
|
#ifdef MSG_CMSG_CLOEXEC
|
|
#ifdef MSG_CMSG_CLOEXEC
|
|
sflags |= MSG_CMSG_CLOEXEC;
|
|
sflags |= MSG_CMSG_CLOEXEC;
|
|
#endif
|
|
#endif
|
|
@@ -493,10 +495,12 @@ static ssize_t qio_channel_socket_writev(QIOChannel *ioc,
|
|
QIOChannelSocket *sioc = QIO_CHANNEL_SOCKET(ioc);
|
|
QIOChannelSocket *sioc = QIO_CHANNEL_SOCKET(ioc);
|
|
ssize_t ret;
|
|
ssize_t ret;
|
|
struct msghdr msg = { NULL, };
|
|
struct msghdr msg = { NULL, };
|
|
- char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)] = { 0 };
|
|
|
|
|
|
+ char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)];
|
|
size_t fdsize = sizeof(int) * nfds;
|
|
size_t fdsize = sizeof(int) * nfds;
|
|
struct cmsghdr *cmsg;
|
|
struct cmsghdr *cmsg;
|
|
|
|
|
|
|
|
+ memset(control, 0, CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS));
|
|
|
|
+
|
|
msg.msg_iov = (struct iovec *)iov;
|
|
msg.msg_iov = (struct iovec *)iov;
|
|
msg.msg_iovlen = niov;
|
|
msg.msg_iovlen = niov;
|
|
|
|
|