Skip to content

Commit fffb381

Browse files
committed
lightningd: help memleak scan into replay_tx hash table to avoid false positives.
``` **BROKEN** lightningd: MEMLEAK: 0x5557327d1428 **BROKEN** lightningd: label=lightningd/onchain_control.c:352:struct replay_tx **BROKEN** lightningd: alloc: **BROKEN** lightningd: /home/runner/work/lightning/lightning/ccan/ccan/tal/tal.c:488 (tal_alloc_) **BROKEN** lightningd: /home/runner/work/lightning/lightning/lightningd/onchain_control.c:352 (replay_watch_tx) **BROKEN** lightningd: /home/runner/work/lightning/lightning/lightningd/onchain_control.c:1816 (onchaind_funding_spent) **BROKEN** lightningd: /home/runner/work/lightning/lightning/lightningd/onchain_control.c:1860 (onchaind_replay_channels) **BROKEN** lightningd: /home/runner/work/lightning/lightning/lightningd/lightningd.c:1407 (main) **BROKEN** lightningd: parents: **BROKEN** lightningd: lightningd/onchain_control.c:1856:struct replay_tx_hash **BROKEN** lightningd: lightningd/lightningd.c:112:struct lightningd ``` Signed-off-by: Rusty Russell <[email protected]>
1 parent 7ed2126 commit fffb381

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

lightningd/onchain_control.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <ccan/tal/str/str.h>
66
#include <common/htlc_tx.h>
77
#include <common/key_derive.h>
8+
#include <common/memleak.h>
89
#include <common/psbt_keypath.h>
910
#include <db/exec.h>
1011
#include <errno.h>
@@ -47,6 +48,13 @@ static bool replay_tx_eq_txid(const struct replay_tx *rtx,
4748
HTABLE_DEFINE_TYPE(struct replay_tx, replay_tx_keyof, txid_hash, replay_tx_eq_txid,
4849
replay_tx_hash);
4950

51+
/* Helper for memleak detection */
52+
static void memleak_replay_tx_hash(struct htable *memtable,
53+
struct replay_tx_hash *replay_tx_hash)
54+
{
55+
memleak_scan_htable(memtable, &replay_tx_hash->raw);
56+
}
57+
5058
/* We dump all the known preimages when onchaind starts up. */
5159
static void onchaind_tell_fulfill(struct channel *channel)
5260
{
@@ -1856,6 +1864,8 @@ void onchaind_replay_channels(struct lightningd *ld)
18561864
channel->onchaind_replay_watches = tal(channel, struct replay_tx_hash);
18571865
channel->onchaind_replay_height = blockheight;
18581866
replay_tx_hash_init(channel->onchaind_replay_watches);
1867+
memleak_add_helper(channel->onchaind_replay_watches,
1868+
memleak_replay_tx_hash);
18591869

18601870
onchaind_funding_spent(channel, tx, blockheight);
18611871
onchaind_replay(channel);

0 commit comments

Comments
 (0)