Fix warnings from the Clang static analyzer.
authorGuus Sliepen <guus@tinc-vpn.org>
Thu, 23 Jun 2016 13:59:16 +0000 (15:59 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Thu, 23 Jun 2016 13:59:16 +0000 (15:59 +0200)
These are all false positives or harmless dead stores.

src/net.c
src/net_packet.c
src/net_socket.c
src/sptps.c

index 577b11fde99a503be495586399c2d2bbe9e199fe..4369ff498dfc3d4b2f0ea29484ad9f3f59d72f56 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -94,29 +94,31 @@ void purge(void) {
 void terminate_connection(connection_t *c, bool report) {
        logger(DEBUG_CONNECTIONS, LOG_NOTICE, "Closing connection with %s (%s)", c->name, c->hostname);
 
-       if(c->node && c->node->connection == c)
-               c->node->connection = NULL;
+       if(c->node) {
+               if(c->node->connection == c)
+                       c->node->connection = NULL;
 
-       if(c->edge) {
-               if(report && !tunnelserver)
-                       send_del_edge(everyone, c->edge);
+               if(c->edge) {
+                       if(report && !tunnelserver)
+                               send_del_edge(everyone, c->edge);
 
-               edge_del(c->edge);
-               c->edge = NULL;
+                       edge_del(c->edge);
+                       c->edge = NULL;
 
-               /* Run MST and SSSP algorithms */
+                       /* Run MST and SSSP algorithms */
 
-               graph();
+                       graph();
 
-               /* If the node is not reachable anymore but we remember it had an edge to us, clean it up */
+                       /* If the node is not reachable anymore but we remember it had an edge to us, clean it up */
 
-               if(report && !c->node->status.reachable) {
-                       edge_t *e;
-                       e = lookup_edge(c->node, myself);
-                       if(e) {
-                               if(!tunnelserver)
-                                       send_del_edge(everyone, e);
-                               edge_del(e);
+                       if(report && !c->node->status.reachable) {
+                               edge_t *e;
+                               e = lookup_edge(c->node, myself);
+                               if(e) {
+                                       if(!tunnelserver)
+                                               send_del_edge(everyone, e);
+                                       edge_del(e);
+                               }
                        }
                }
        }
index 44214df4f0e60d6412419bf88cbc303a61b37d6b..59e9102a447c91401089339f9718c88a11622acb 100644 (file)
@@ -767,7 +767,7 @@ bool send_sptps_data(node_t *to, node_t *from, int type, const void *data, size_
                        char buf[len + sizeof to->id + sizeof from->id]; char* buf_ptr = buf;
                        memcpy(buf_ptr, &to->id, sizeof to->id); buf_ptr += sizeof to->id;
                        memcpy(buf_ptr, &from->id, sizeof from->id); buf_ptr += sizeof from->id;
-                       memcpy(buf_ptr, data, len); buf_ptr += len;
+                       memcpy(buf_ptr, data, len);
                        logger(DEBUG_TRAFFIC, LOG_INFO, "Sending packet from %s (%s) to %s (%s) via %s (%s) (TCP)", from->name, from->hostname, to->name, to->hostname, to->nexthop->name, to->nexthop->hostname);
                        return send_sptps_tcppacket(to->nexthop->connection, buf, sizeof buf);
                }
index bafea64d4161c39c2dbf1b265ea0f16de0b8d7f4..8259d9a534172e79cefa11afc72de5d150e16e00 100644 (file)
@@ -534,6 +534,8 @@ begin:
        } else if(proxytype == PROXY_EXEC) {
                result = 0;
        } else {
+               if(!proxyai)
+                       abort();
                result = connect(c->socket, proxyai->ai_addr, proxyai->ai_addrlen);
                freeaddrinfo(proxyai);
        }
index 712d50ea8d2d68d8787fda3793d2c2fcec36abd8..a1fd5e75c05bc5d306d637166bdef5267416d019 100644 (file)
@@ -547,8 +547,6 @@ size_t sptps_receive_data(sptps_t *s, const void *data, size_t len) {
        memcpy(s->inbuf + s->buflen, data, toread);
        total_read += toread;
        s->buflen += toread;
-       len -= toread;
-       data += toread;
 
        // If we don't have a whole record, exit.
        if(s->buflen < s->reclen + (s->instate ? 19UL : 3UL))