X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Flibmeshlink.c;h=67d945e04800752940204324c4d6cbd0e864d78f;hb=28f92f84d5adb5b0b07abab7cb72c4eceb0ca1ec;hp=00eaa09cd1e6cedd2e06326dbe712e8480ab4509;hpb=7af072dcd530982027332c1d58bd3e476b2139f9;p=meshlink diff --git a/src/libmeshlink.c b/src/libmeshlink.c index 00eaa09c..67d945e0 100644 --- a/src/libmeshlink.c +++ b/src/libmeshlink.c @@ -565,7 +565,7 @@ bool tinc_send_packet(node_t *receiver, const char* buf, unsigned int len) { vpn_packet_t packet; tincpackethdr* hdr = malloc(sizeof(tincpackethdr)); - if (sizeof(hdr) + len > MAXSIZE) { + if (14 + sizeof(hdr) + len > MAXSIZE) { //log something return false; @@ -577,8 +577,9 @@ bool tinc_send_packet(node_t *receiver, const char* buf, unsigned int len) { packet.priority = 0; packet.len = sizeof(tincpackethdr) + len; - memcpy(packet.data,hdr,32); - memcpy(packet.data+32,buf,len); + memset(packet.data,1,14); + memcpy(packet.data+14,hdr,32); + memcpy(packet.data+32+14,buf,len); myself->in_packets++; myself->in_bytes += packet.len;