From 601159e8e25028155a86de2e5fdf55c9402936d7 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Mon, 3 Mar 2014 21:02:55 +0100 Subject: Fix a bus error by not going above an array boundary --- src/network/socket_handler.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/network/socket_handler.cpp') diff --git a/src/network/socket_handler.cpp b/src/network/socket_handler.cpp index eb427b8..d774927 100644 --- a/src/network/socket_handler.cpp +++ b/src/network/socket_handler.cpp @@ -183,7 +183,8 @@ void SocketHandler::on_send() // unconsting the content of s is ok, sendmsg will never modify it msg_iov[msg.msg_iovlen].iov_base = const_cast(s.data()); msg_iov[msg.msg_iovlen].iov_len = s.size(); - msg.msg_iovlen++; + if (++msg.msg_iovlen == UIO_FASTIOV) + break; } ssize_t res = ::sendmsg(this->socket, &msg, MSG_NOSIGNAL); if (res < 0) -- cgit v1.2.3