[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v1 5/5] io: use memset instead of { 0 } for initializ
From: |
Daniel P. Berrange |
Subject: |
[Qemu-devel] [PULL v1 5/5] io: use memset instead of { 0 } for initializing array |
Date: |
Wed, 20 Jan 2016 12:01:33 +0000 |
Some versions of GCC on OS-X complain about CMSG_SPACE
not being constant size, which prevents use of { 0 }
io/channel-socket.c: In function 'qio_channel_socket_writev':
io/channel-socket.c:497:18: error: variable-sized object may not be initialized
char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)] = { 0 };
The compiler is at fault here, but it is nicer to avoid
tickling this compiler bug by using memset instead.
Reviewed-By: John Arbuckle <address@hidden>
Signed-off-by: Daniel P. Berrange <address@hidden>
---
io/channel-socket.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/io/channel-socket.c b/io/channel-socket.c
index eaa411f..bc117b1 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -449,6 +449,8 @@ static ssize_t qio_channel_socket_readv(QIOChannel *ioc,
char control[CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS)];
int sflags = 0;
+ memset(control, 0, CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS));
+
#ifdef MSG_CMSG_CLOEXEC
sflags |= MSG_CMSG_CLOEXEC;
#endif
@@ -493,10 +495,12 @@ static ssize_t qio_channel_socket_writev(QIOChannel *ioc,
QIOChannelSocket *sioc = QIO_CHANNEL_SOCKET(ioc);
ssize_t ret;
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;
struct cmsghdr *cmsg;
+ memset(control, 0, CMSG_SPACE(sizeof(int) * SOCKET_MAX_FDS));
+
msg.msg_iov = (struct iovec *)iov;
msg.msg_iovlen = niov;
--
2.5.0
- [Qemu-devel] [PULL v1 0/5] I/O channels fixes, Daniel P. Berrange, 2016/01/20
- [Qemu-devel] [PULL v1 1/5] io: fix sign of errno value passed to error report, Daniel P. Berrange, 2016/01/20
- [Qemu-devel] [PULL v1 3/5] io: some fixes to handling of /dev/null when running commands, Daniel P. Berrange, 2016/01/20
- [Qemu-devel] [PULL v1 5/5] io: use memset instead of { 0 } for initializing array,
Daniel P. Berrange <=
- [Qemu-devel] [PULL v1 2/5] io: increment counter when killing off subcommand, Daniel P. Berrange, 2016/01/20
- [Qemu-devel] [PULL v1 4/5] io: fix description of @errp parameter initialization, Daniel P. Berrange, 2016/01/20
- Re: [Qemu-devel] [PULL v1 0/5] I/O channels fixes, Peter Maydell, 2016/01/21