From a620a048db382ace2ab42cfe0f6e832de1197527 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 21 Jun 2012 01:24:41 +0100 Subject: [PATCH] site: transport peers: fix incorrect stride when debug output enabled When there are multiple peer addresses, attempts to copy them from one table of peers addresses to another with transport_peers_copy will go wrong because the stride argument to transport_peers_debug is wrong - we take sizeof() the pointer rather than of the array element. This will typically cause a segfault if it happens, but the bug can only be triggered if LOG_PEER_ADDRS debugging is enabled. Signed-off-by: Ian Jackson --- site.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site.c b/site.c index b54b34e..fcc36d8 100644 --- a/site.c +++ b/site.c @@ -1603,7 +1603,7 @@ static void transport_peers_copy(struct site *st, transport_peers *dst, dst->npeers=src->npeers; memcpy(dst->peers, src->peers, sizeof(*dst->peers) * dst->npeers); transport_peers_debug(st,dst,"copy", - src->npeers, &src->peers->addr, sizeof(src->peers)); + src->npeers, &src->peers->addr, sizeof(*src->peers)); } void transport_xmit(struct site *st, transport_peers *peers, -- 2.30.2