gcrypt: initialize secure memory on startup
[tinc] / src / node.c
index 4caf992..8e0f162 100644 (file)
@@ -89,16 +89,20 @@ node_t *new_node(void) {
 }
 
 void free_node(node_t *n) {
+       if(!n) {
+               return;
+       }
+
        splay_empty_tree(&n->subnet_tree);
        splay_empty_tree(&n->edge_tree);
 
        sockaddrfree(&n->address);
 
 #ifndef DISABLE_LEGACY
-       cipher_close(n->incipher);
-       digest_close(n->indigest);
-       cipher_close(n->outcipher);
-       digest_close(n->outdigest);
+       cipher_free(n->incipher);
+       digest_free(n->indigest);
+       cipher_free(n->outcipher);
+       digest_free(n->outdigest);
 #endif
 
        ecdsa_free(n->ecdsa);
@@ -202,14 +206,14 @@ bool dump_nodes(connection_t *c) {
                }
 
                id[sizeof(id) - 1] = 0;
-               send_request(c, "%d %d %s %s %s %d %d %zu %d %x %x %s %s %d %d %d %d %ld %d %"PRIu64" %"PRIu64" %"PRIu64" %"PRIu64, CONTROL, REQ_DUMP_NODES,
+               send_request(c, "%d %d %s %s %s %d %d %lu %d %x %x %s %s %d %d %d %d %ld %d %"PRIu64" %"PRIu64" %"PRIu64" %"PRIu64, CONTROL, REQ_DUMP_NODES,
                             n->name, id, n->hostname ? n->hostname : "unknown port unknown",
 #ifdef DISABLE_LEGACY
                             0, 0, 0UL,
 #else
-                            cipher_get_nid(n->outcipher), digest_get_nid(n->outdigest), digest_length(n->outdigest),
+                            cipher_get_nid(n->outcipher), digest_get_nid(n->outdigest), (unsigned long)digest_length(n->outdigest),
 #endif
-                            n->outcompression, n->options, bitfield_to_int(&n->status, sizeof(n->status)),
+                            n->outcompression, n->options, n->status.value,
                             n->nexthop ? n->nexthop->name : "-", n->via && n->via->name ? n->via->name : "-", n->distance,
                             n->mtu, n->minmtu, n->maxmtu, (long)n->last_state_change, n->udp_ping_rtt,
                             n->in_packets, n->in_bytes, n->out_packets, n->out_bytes);