From fc27250f80eb8bb696398a5061dbe2987cde4cb6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 20 Jun 2019 12:25:52 +0930 Subject: [PATCH] gossipd: be more verbose and less assert()ive on bad node_announcement. We hit the timestamp assert on #2750; it shouldn't happen, but crashing doesn't leave much information. Reported-by: @m-schmook Signed-off-by: Rusty Russell --- gossipd/gossipd.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gossipd/gossipd.c b/gossipd/gossipd.c index 8ac108695..5686c5b3a 100644 --- a/gossipd/gossipd.c +++ b/gossipd/gossipd.c @@ -485,8 +485,18 @@ static bool get_node_announcement(const tal_t *ctx, n->bcast.index, tal_hex(tmpctx, msg)); return false; } - assert(node_id_eq(&id, &n->id)); - assert(timestamp == n->bcast.timestamp); + + if (!node_id_eq(&id, &n->id) || timestamp != n->bcast.timestamp) { + status_broken("Wrong node_announcement @%u:" + " expected %s timestamp %u " + " got %s timestamp %u", + n->bcast.index, + type_to_string(tmpctx, struct node_id, &n->id), + timestamp, + type_to_string(tmpctx, struct node_id, &id), + n->bcast.timestamp); + return false; + } *wireaddrs = read_addresses(ctx, addresses); tal_free(addresses);