Skip to content

Commit bc430cc

Browse files
rustyrussellniftynei
authored andcommitted
gossipd: fix false-positive memleak detection in pending_node_map.
lightning_gossipd(17421): MEMLEAK: 0x564b4b17b5a8 ligtning_gossipd(17421): label=gossipd/routing.c:1490:struct pending_node_announce lightning_gossipd(17421): backtrace: lightning_gossipd(17421): ccan/ccan/tal/tal.c:437 (tal_alloc_) lightning_gossipd(17421): gossipd/routing.c:1490 (catch_node_announcement) lightning_gossipd(17421): gossipd/routing.c:1837 (handle_channel_announcement) lightning_gossipd(17421): gossipd/gossipd.c:238 (handle_channel_announcement_msg) lightning_gossipd(17421): gossipd/gossipd.c:461 (peer_msg_in) lightning_gossipd(17421): common/daemon_conn.c:31 (handle_read) lightning_gossipd(17421): ccan/ccan/io/io.c:59 (next_plan) lightning_gossipd(17421): ccan/ccan/io/io.c:407 (do_plan) lightning_gossipd(17421): ccan/ccan/io/io.c:417 (io_ready) lightning_gossipd(17421): ccan/ccan/io/poll.c:445 (io_loop) lightning_gossipd(17421): gossipd/gossipd.c:1700 (main) lightning_gossipd(17421): parents: lightning_gossipd(17421): gossipd/routing.c:294:struct routing_state Signed-off-by: Rusty Russell <[email protected]>
1 parent e16ac08 commit bc430cc

File tree

6 files changed

+16
-1
lines changed

6 files changed

+16
-1
lines changed

gossipd/routing.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1528,7 +1528,7 @@ static void process_pending_node_announcement(struct routing_state *rstate,
15281528
* accepted the public channel now. But other pending announcements
15291529
* may still hold a reference they use in
15301530
* del_pending_node_announcement, so simply delete it from the map. */
1531-
pending_node_map_del(rstate->pending_node_map, pna);
1531+
pending_node_map_del(rstate->pending_node_map, notleak(pna));
15321532
}
15331533

15341534
static struct pending_cannouncement *

gossipd/test/run-bench-find_route.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ bool nannounce_different(struct gossip_store *gs UNNEEDED,
5151
const struct node *node UNNEEDED,
5252
const u8 *nannounce UNNEEDED)
5353
{ fprintf(stderr, "nannounce_different called!\n"); abort(); }
54+
/* Generated stub for notleak_ */
55+
void *notleak_(const void *ptr UNNEEDED, bool plus_children UNNEEDED)
56+
{ fprintf(stderr, "notleak_ called!\n"); abort(); }
5457
/* Generated stub for onion_type_name */
5558
const char *onion_type_name(int e UNNEEDED)
5659
{ fprintf(stderr, "onion_type_name called!\n"); abort(); }

gossipd/test/run-find_route-specific.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ bool nannounce_different(struct gossip_store *gs UNNEEDED,
4040
const struct node *node UNNEEDED,
4141
const u8 *nannounce UNNEEDED)
4242
{ fprintf(stderr, "nannounce_different called!\n"); abort(); }
43+
/* Generated stub for notleak_ */
44+
void *notleak_(const void *ptr UNNEEDED, bool plus_children UNNEEDED)
45+
{ fprintf(stderr, "notleak_ called!\n"); abort(); }
4346
/* Generated stub for onion_type_name */
4447
const char *onion_type_name(int e UNNEEDED)
4548
{ fprintf(stderr, "onion_type_name called!\n"); abort(); }

gossipd/test/run-find_route.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ bool nannounce_different(struct gossip_store *gs UNNEEDED,
3838
const struct node *node UNNEEDED,
3939
const u8 *nannounce UNNEEDED)
4040
{ fprintf(stderr, "nannounce_different called!\n"); abort(); }
41+
/* Generated stub for notleak_ */
42+
void *notleak_(const void *ptr UNNEEDED, bool plus_children UNNEEDED)
43+
{ fprintf(stderr, "notleak_ called!\n"); abort(); }
4144
/* Generated stub for onion_type_name */
4245
const char *onion_type_name(int e UNNEEDED)
4346
{ fprintf(stderr, "onion_type_name called!\n"); abort(); }

gossipd/test/run-overlong.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ bool nannounce_different(struct gossip_store *gs UNNEEDED,
3838
const struct node *node UNNEEDED,
3939
const u8 *nannounce UNNEEDED)
4040
{ fprintf(stderr, "nannounce_different called!\n"); abort(); }
41+
/* Generated stub for notleak_ */
42+
void *notleak_(const void *ptr UNNEEDED, bool plus_children UNNEEDED)
43+
{ fprintf(stderr, "notleak_ called!\n"); abort(); }
4144
/* Generated stub for onion_type_name */
4245
const char *onion_type_name(int e UNNEEDED)
4346
{ fprintf(stderr, "onion_type_name called!\n"); abort(); }

gossipd/test/run-txout_failure.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ bool nannounce_different(struct gossip_store *gs UNNEEDED,
5050
const struct node *node UNNEEDED,
5151
const u8 *nannounce UNNEEDED)
5252
{ fprintf(stderr, "nannounce_different called!\n"); abort(); }
53+
/* Generated stub for notleak_ */
54+
void *notleak_(const void *ptr UNNEEDED, bool plus_children UNNEEDED)
55+
{ fprintf(stderr, "notleak_ called!\n"); abort(); }
5356
/* Generated stub for onion_type_name */
5457
const char *onion_type_name(int e UNNEEDED)
5558
{ fprintf(stderr, "onion_type_name called!\n"); abort(); }

0 commit comments

Comments
 (0)