Bug #395
Updated by Tobias Brunner about 12 years ago
Valgrind outputted the below error. This occurred while trying to setup a tunnel to the gateway. This test was doing against 5.1.0.
<pre>
==20660== Syscall param socketcall.sendmsg(msg.msg_control) points to uninitialised byte(s)
==20660== at 0x550A33D: ??? (syscall-template.S:82)
==20660== by 0xA4F002C: sender (socket_default_socket.c:489)
==20660== by 0x52A81AE: sender (socket_manager.c:87)
==20660== by 0x52A7D3E: send_packets (sender.c:161)
==20660== by 0x4E5B53D: execute (callback_job.c:77)
==20660== by 0x4E5BE12: process_jobs (processor.c:235)
==20660== by 0x4E5EDDF: thread_main (thread.c:309)
==20660== by 0x5502E99: start_thread (pthread_create.c:308)
==20660== Address 0xdd15d1c is on thread 7's stack
==20660==
</pre>
I applied following patch and the report went away.
<pre><code class="diff"> <pre>
--- socket_default_socket.c.orig 2013-08-30 11:08:02.429571502 -0700
+++ socket_default_socket.c 2013-08-30 10:29:13.514055642 -0700
@@ -445,6 +445,7 @@
#elif defined(IP_SENDSRCADDR)
char buf[CMSG_SPACE(sizeof(struct in_addr))];
#endif
+ memset(buf, 0, sizeof(buf));
msg.msg_control = buf;
msg.msg_controllen = sizeof(buf);
cmsg = CMSG_FIRSTHDR(&msg);
</code></pre> </pre>
<pre>
==20660== Syscall param socketcall.sendmsg(msg.msg_control) points to uninitialised byte(s)
==20660== at 0x550A33D: ??? (syscall-template.S:82)
==20660== by 0xA4F002C: sender (socket_default_socket.c:489)
==20660== by 0x52A81AE: sender (socket_manager.c:87)
==20660== by 0x52A7D3E: send_packets (sender.c:161)
==20660== by 0x4E5B53D: execute (callback_job.c:77)
==20660== by 0x4E5BE12: process_jobs (processor.c:235)
==20660== by 0x4E5EDDF: thread_main (thread.c:309)
==20660== by 0x5502E99: start_thread (pthread_create.c:308)
==20660== Address 0xdd15d1c is on thread 7's stack
==20660==
</pre>
I applied following patch and the report went away.
<pre><code class="diff"> <pre>
--- socket_default_socket.c.orig 2013-08-30 11:08:02.429571502 -0700
+++ socket_default_socket.c 2013-08-30 10:29:13.514055642 -0700
@@ -445,6 +445,7 @@
#elif defined(IP_SENDSRCADDR)
char buf[CMSG_SPACE(sizeof(struct in_addr))];
#endif
+ memset(buf, 0, sizeof(buf));
msg.msg_control = buf;
msg.msg_controllen = sizeof(buf);
cmsg = CMSG_FIRSTHDR(&msg);
</code></pre> </pre>