Use correct digest length when checking a received key.
[tinc] / src / protocol_auth.c
index cf6b26f..ca9e86b 100644 (file)
@@ -261,7 +261,7 @@ bool send_challenge(connection_t *c) {
 bool challenge_h(connection_t *c, char *request) {
        char buffer[MAX_STRING_SIZE];
        size_t len = rsa_size(&myself->connection->rsa);
-       size_t digestlen = digest_length(&c->outdigest);
+       size_t digestlen = digest_length(&c->indigest);
        char digest[digestlen];
 
        if(sscanf(request, "%*d " MAX_STRING, buffer) != 1) {
@@ -401,7 +401,7 @@ static void send_everything(connection_t *c) {
 
 bool ack_h(connection_t *c, char *request) {
        char hisport[MAX_STRING_SIZE];
-       char *hisaddress, *dummy;
+       char *hisaddress;
        int weight, mtu;
        uint32_t options;
        node_t *n;
@@ -479,10 +479,9 @@ bool ack_h(connection_t *c, char *request) {
        c->edge = new_edge();
        c->edge->from = myself;
        c->edge->to = n;
-       sockaddr2str(&c->address, &hisaddress, &dummy);
+       sockaddr2str(&c->address, &hisaddress, NULL);
        c->edge->address = str2sockaddr(hisaddress, hisport);
        free(hisaddress);
-       free(dummy);
        c->edge->weight = (weight + c->estimated_weight) / 2;
        c->edge->connection = c;
        c->edge->options = c->options;