From daf3d6e8db9ef39b50dce040f864fb409bd7044a Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 17 Apr 2013 21:42:22 +0200 Subject: Fix handling of the local address in shell commands Without this fix, using on-establish/disestablish/verify would cause a strange zero port when a bind with a random port was used, and a segmentation fault with dynamic binds. --- src/protocol_ec25519_fhmqvc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/protocol_ec25519_fhmqvc.c') diff --git a/src/protocol_ec25519_fhmqvc.c b/src/protocol_ec25519_fhmqvc.c index eea95e4..d0dad5b 100644 --- a/src/protocol_ec25519_fhmqvc.c +++ b/src/protocol_ec25519_fhmqvc.c @@ -627,7 +627,7 @@ static inline fastd_peer_t* add_temporary(fastd_context_t *ctx, fastd_socket_t * /* Ugly hack */ peer->protocol_state->last_serial--; - if (!fastd_peer_verify_temporary(ctx, peer, &sock->addr->addr, address)) { + if (!fastd_peer_verify_temporary(ctx, peer, sock->bound_addr, address)) { pr_debug(ctx, "ignoring handshake from %P[%I] (verification failed)", peer, address); fastd_peer_delete(ctx, peer); return NULL; @@ -674,7 +674,7 @@ static void protocol_handshake_handle(fastd_context_t *ctx, fastd_socket_t *sock } if (fastd_peer_is_temporary(peer) && !temporary_added) { - if (!fastd_peer_verify_temporary(ctx, peer, &sock->addr->addr, address)) { + if (!fastd_peer_verify_temporary(ctx, peer, sock->bound_addr, address)) { pr_debug(ctx, "ignoring handshake from %P[%I] (verification failed)", peer, address); return; } -- cgit v1.2.3