Fixed uninitialized memory warning before write()
This commit is contained in:
19
src/lwIP.cpp
19
src/lwIP.cpp
@@ -850,6 +850,7 @@ namespace ZeroTier
|
||||
#endif
|
||||
|
||||
char udp_payload_buf[ZT_SOCKET_MSG_BUF_SZ];
|
||||
memset(udp_payload_buf, 0, sizeof(ZT_SOCKET_MSG_BUF_SZ));
|
||||
char *msg_ptr = udp_payload_buf;
|
||||
int tot_len = 0;
|
||||
while(p != NULL) {
|
||||
@@ -861,21 +862,23 @@ namespace ZeroTier
|
||||
tot_len += p->len;
|
||||
p = p->next;
|
||||
}
|
||||
if (tot_len) {
|
||||
if (tot_len > 0) {
|
||||
int w = 0;
|
||||
//DEBUG_INFO("tot_len=%d", tot_len);
|
||||
char udp_msg_buf[ZT_SOCKET_MSG_BUF_SZ]; // [sz : addr : payload]
|
||||
// [sz : addr : payload]
|
||||
char udp_msg_buf[ZT_SOCKET_MSG_BUF_SZ];
|
||||
memset(udp_msg_buf, 0, sizeof(ZT_SOCKET_MSG_BUF_SZ));
|
||||
int32_t len = sizeof(struct sockaddr_storage) + tot_len;
|
||||
int32_t msg_tot_len = sizeof(int32_t) + len;
|
||||
memcpy(udp_msg_buf, &len, sizeof(int32_t)); // len: sockaddr+payload
|
||||
memcpy(udp_msg_buf + sizeof(int32_t), &ss, sizeof(struct sockaddr_storage)); // sockaddr
|
||||
memcpy(udp_msg_buf + sizeof(int32_t) + sizeof(struct sockaddr_storage), &udp_payload_buf, tot_len); // payload
|
||||
// len: sockaddr+payload
|
||||
memcpy(udp_msg_buf, &len, sizeof(int32_t));
|
||||
// sockaddr
|
||||
memcpy(udp_msg_buf + sizeof(int32_t), &ss, sizeof(struct sockaddr_storage));
|
||||
// payload
|
||||
memcpy(udp_msg_buf + sizeof(int32_t) + sizeof(struct sockaddr_storage), &udp_payload_buf, tot_len);
|
||||
if ((w = write(vs->sdk_fd, udp_msg_buf, msg_tot_len)) < 0) {
|
||||
perror("write");
|
||||
DEBUG_ERROR("write(fd=%d)=%d, errno=%d", vs->sdk_fd, w, errno);
|
||||
}
|
||||
//vs->tap->phyOnUnixWritable(vs->sock, NULL, true);
|
||||
//vs->tap->_phy.setNotifyWritable(vs->sock, true);
|
||||
}
|
||||
pbuf_free(q);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user