Fix UBSAN warnings about conversions and overflows.
[tinc] / src / protocol_misc.c
index d808d73..7994f00 100644 (file)
@@ -21,7 +21,6 @@
 #include "system.h"
 
 #include "address_cache.h"
-#include "conf.h"
 #include "connection.h"
 #include "logger.h"
 #include "meta.h"
@@ -29,7 +28,6 @@
 #include "netutl.h"
 #include "protocol.h"
 #include "utils.h"
-#include "xalloc.h"
 
 #ifndef MIN
 #define MIN(x, y) (((x)<(y))?(x):(y))
@@ -44,6 +42,8 @@ bool send_termreq(connection_t *c) {
 }
 
 bool termreq_h(connection_t *c, const char *request) {
+       (void)c;
+       (void)request;
        return false;
 }
 
@@ -55,6 +55,7 @@ bool send_ping(connection_t *c) {
 }
 
 bool ping_h(connection_t *c, const char *request) {
+       (void)request;
        return send_pong(c);
 }
 
@@ -63,13 +64,14 @@ bool send_pong(connection_t *c) {
 }
 
 bool pong_h(connection_t *c, const char *request) {
+       (void)request;
        c->status.pinged = false;
 
        /* Successful connection, reset timeout if this is an outgoing connection. */
 
-       if(c->outgoing) {
+       if(c->outgoing && c->outgoing->timeout) {
                c->outgoing->timeout = 0;
-               reset_address_cache(c->outgoing->address_cache, &c->address);
+               reset_address_cache(c->outgoing->node->address_cache, &c->address);
        }
 
        return true;
@@ -89,7 +91,7 @@ bool send_tcppacket(connection_t *c, const vpn_packet_t *packet) {
                return false;
        }
 
-       return send_meta(c, (char *)DATA(packet), packet->len);
+       return send_meta(c, DATA(packet), packet->len);
 }
 
 bool tcppacket_h(connection_t *c, const char *request) {
@@ -108,7 +110,7 @@ bool tcppacket_h(connection_t *c, const char *request) {
        return true;
 }
 
-bool send_sptps_tcppacket(connection_t *c, const char *packet, int len) {
+bool send_sptps_tcppacket(connection_t *c, const void *packet, size_t len) {
        /* If there already is a lot of data in the outbuf buffer, discard this packet.
           We use a very simple Random Early Drop algorithm. */
 
@@ -116,7 +118,7 @@ bool send_sptps_tcppacket(connection_t *c, const char *packet, int len) {
                return true;
        }
 
-       if(!send_request(c, "%d %d", SPTPS_PACKET, len)) {
+       if(!send_request(c, "%d %zu", SPTPS_PACKET, len)) {
                return false;
        }