tnc-pdp: Initialize struct msghdr properly when reading RADIUS messages

Before this e.g. msg_controllen was not initialized properly which could
cause invalid reads.
This commit is contained in:
Tobias Brunner
2013-07-31 22:16:58 +02:00
committed by Andreas Steffen
parent 3a938a6f85
commit 58e32e4871
+10 -10
View File
@@ -456,22 +456,22 @@ static bool receive(private_tnc_pdp_t *this, int fd, watcher_event_t event)
char buffer[MAX_PACKET];
int bytes_read = 0;
host_t *source;
struct msghdr msg;
struct iovec iov;
union {
struct sockaddr_in in4;
struct sockaddr_in6 in6;
} src;
struct iovec iov = {
.iov_base = buffer,
.iov_len = MAX_PACKET,
};
struct msghdr msg = {
.msg_name = &src,
.msg_namelen = sizeof(src),
.msg_iov = &iov,
.msg_iovlen = 1,
};
/* read received packet */
msg.msg_name = &src;
msg.msg_namelen = sizeof(src);
iov.iov_base = buffer;
iov.iov_len = MAX_PACKET;
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
msg.msg_flags = 0;
bytes_read = recvmsg(fd, &msg, 0);
if (bytes_read < 0)
{