core-lightning/lightningd
Rusty Russell fc8672061f lightningd: fix false positive on leak detection.
Commit 9aedb0c61f changed this from allocating off `c` to allocating
off NULL, knowing that it's tal_steal() in the callback.  But before
that, it can be detected as a mem leak:

```
    @pytest.fixture
    def teardown_checks(request):
        """A simple fixture to collect errors during teardown.

        We need to collect the errors and raise them as the very last step in the
        fixture tree, otherwise some fixtures may not be cleaned up
        correctly. Require this fixture in all other fixtures that need to either
        cleanup before reporting an error or want to add an error that is to be
        reported.

        """
        errors = TeardownErrors()
        yield errors

        if errors.has_errors():
            # Format a nice list of everything that went wrong and raise an exception
            request.node.has_errors = True
>           raise ValueError(str(errors))
E           ValueError:
E           Node errors:
E           Global errors:
E            - Node /tmp/ltests-iz9y1chb/test_hsmtool_secret_decryption_1/lightning-1/ has memory leaks: [
E               {
E                   "backtrace": [
E                       "ccan/ccan/tal/tal.c:442 (tal_alloc_)",
E                       "lightningd/jsonrpc.c:848 (parse_request)",
E                       "lightningd/jsonrpc.c:941 (read_json)",
E                       "ccan/ccan/io/io.c:59 (next_plan)",
E                       "ccan/ccan/io/io.c:407 (do_plan)",
E                  avis/build/ElementsProject/lightning/lightningd/../plugins/pay
```

Reported-by: @niftynei
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-04-21 13:02:42 -05:00
..
test plugins: Fix undefined deallocation order in struct plugins 2020-04-16 18:03:35 +09:30
.gitignore
bitcoind.c bcli: register --dev-max-fee-multiplier on our side 2020-03-30 20:17:18 +10:30
bitcoind.h lightning/bitcoind: adapt and batch fees estimations 2020-03-30 20:17:18 +10:30
chaintopology.c bcli: register --dev-max-fee-multiplier on our side 2020-03-30 20:17:18 +10:30
chaintopology.h chaintopology: better feerate targets differentiation 2020-03-30 20:17:18 +10:30
channel_control.c channeld: simplify loading of pre-existing HTLCs. 2020-04-04 16:08:49 +10:30
channel_control.h channel control: break out separate method for canceling 2020-02-10 15:59:26 +10:30
channel_state.h wallet: Add a final CLOSED state to channels 2019-06-30 16:41:30 +09:30
channel.c utils: add marker for functions which take ownership of pointers. 2020-04-16 09:40:39 +09:30
channel.h utils: add marker for functions which take ownership of pointers. 2020-04-16 09:40:39 +09:30
closing_control.c closingd: configurable closing fee negotiation step 2020-04-07 13:52:48 +09:30
closing_control.h common/per_per_state: generalize lightningd/peer_comm Part 1 2019-06-04 01:29:39 +00:00
connect_control.c cleanup: make 'u8 *features' and 'struct feature_set *fset' more explicit. 2020-04-03 13:13:21 +10:30
connect_control.h lightningd: return features in connect response. 2020-04-03 13:13:21 +10:30
gossip_control.c lightningd: add blinding and enctlv field to struct route_hop. 2020-04-14 12:51:18 +09:30
gossip_control.h gossipd: get fed the blockheight from lightningd when we know it. 2019-09-25 04:01:56 +00:00
gossip_msg.c lightningd: add blinding and enctlv field to struct route_hop. 2020-04-14 12:51:18 +09:30
gossip_msg.h lightningd: add blinding and enctlv field to struct route_hop. 2020-04-14 12:51:18 +09:30
hsm_control.c common: generalize ecdh function. 2020-04-04 16:08:49 +10:30
hsm_control.h Use node_id everywhere for nodes. 2019-04-09 12:37:16 -07:00
htlc_end.c channeld: support HTLCs with blinding (EXPERIMENTAL_FEATURES) 2020-04-14 12:51:18 +09:30
htlc_end.h channeld: support HTLCs with blinding (EXPERIMENTAL_FEATURES) 2020-04-14 12:51:18 +09:30
htlc_set.c lightningd: fix crash when failing htlc once channeld dies. 2020-04-16 09:39:49 +09:30
htlc_set.h lightningd: make local htlc failures pass a wiremsg for errors, not a failcode. 2020-02-25 11:12:12 +10:30
invoice.c lightningd: allow htlc_accepted hook to replace onion payload. 2020-04-16 18:03:35 +09:30
invoice.h lightningd: sew in htlc set. 2019-12-12 15:03:53 +01:00
io_loop_with_timers.c plugins: don't crash if getmanifest times out. 2019-07-24 16:16:53 +02:00
io_loop_with_timers.h lightningd/io_loop_with_timers.c: Move mainloop to its own source file, have chaintopology use it. 2019-05-31 17:57:10 +02:00
json.c chaintopology: better feerate targets differentiation 2020-03-30 20:17:18 +10:30
json.h common: move json_stream helpers to common/json 2020-02-04 13:24:32 +10:30
jsonrpc.c lightningd: fix false positive on leak detection. 2020-04-21 13:02:42 -05:00
jsonrpc.h common: move json_stream from lightningd/ to common/ 2020-02-04 13:24:32 +10:30
lightningd.c wallet: Add a gap limit when checking for incoming transactions 2020-04-20 07:48:32 +09:30
lightningd.h cleanup: make 'u8 *features' and 'struct feature_set *fset' more explicit. 2020-04-03 13:13:21 +10:30
log_status.c lightningd: kill per-peer daemons if they claim a different peer id. 2019-11-18 04:50:22 +00:00
log_status.h lightningd: have logging include an optional node_id for each entry. 2019-11-18 04:50:22 +00:00
log.c log: print UNUSUAL messages before log initialization too. 2019-11-23 22:42:34 +00:00
log.h lightningd: use a simple array for less memory usage. 2019-11-18 04:50:22 +00:00
Makefile channeld: support HTLCs with blinding (EXPERIMENTAL_FEATURES) 2020-04-14 12:51:18 +09:30
memdump.c htlcs: Make sure htlc_sets is not erroneously flagged as a memleak 2019-12-12 22:16:03 +01:00
memdump.h lightningd: add code to search strmaps for memleak detection. 2019-02-07 20:33:50 +00:00
notification.c lightningd, openingd: remove active code inside assert(). 2020-02-18 10:21:29 +10:30
notification.h db: put scids in forwards even if we didn't actually send. 2020-02-12 22:27:57 -06:00
onchain_control.c chaintopology: add delayed_to_us, htlc, and penalty feerates 2020-03-30 20:17:18 +10:30
onchain_control.h
onion_message.c plugins: make chained hooks have two different callbacks. 2020-04-16 09:40:39 +09:30
onion_message.h lightningd: forward onion messages. 2020-04-02 14:32:38 +10:30
opening_control.c plugins: make chained hooks have two different callbacks. 2020-04-16 09:40:39 +09:30
opening_control.h subd: Add a helper to get the current owning subd for a given peer 2020-01-28 23:50:52 +01:00
options.c cleanup: make 'u8 *features' and 'struct feature_set *fset' more explicit. 2020-04-03 13:13:21 +10:30
options.h common: parse --allow-deprecated-apis extremely early. 2019-11-23 22:42:34 +00:00
pay.c lightningd: make sendpay support blinding and enctlv fields (EXPERIMENTAL) 2020-04-14 12:51:18 +09:30
pay.h Use dedicated type for error codes 2020-01-31 06:02:47 +00:00
peer_control.c plugins: make chained hooks have two different callbacks. 2020-04-16 09:40:39 +09:30
peer_control.h cleanup: make 'u8 *features' and 'struct feature_set *fset' more explicit. 2020-04-03 13:13:21 +10:30
peer_htlcs.c lightningd: allow htlc_accepted hook to replace onion payload. 2020-04-16 18:03:35 +09:30
peer_htlcs.h lightningd: fix crash when failing htlc once channeld dies. 2020-04-16 09:39:49 +09:30
ping.c bolt: update to BOLT spec changes (extract format + type specifications) 2019-07-16 06:10:58 +00:00
ping.h ping: complete JSON RPC ping commands even if one ping gets no response. 2018-09-14 22:11:23 +02:00
plugin_control.c plugin: Actually wait the 20 seconds promised in the docs 2020-02-27 09:21:44 +10:30
plugin_control.h plugins: cleanup shared headers between dynamic and static plugins 2019-09-30 00:20:16 +00:00
plugin_hook.c plugins: make chained hooks have two different callbacks. 2020-04-16 09:40:39 +09:30
plugin_hook.h plugins: make chained hooks have two different callbacks. 2020-04-16 09:40:39 +09:30
plugin.c plugin: Move feature_place enum to features.h 2020-04-16 18:03:35 +09:30
plugin.h plugins: Fix undefined deallocation order in struct plugins 2020-04-16 18:03:35 +09:30
signmessage.c common/wireaddr: don't include lightningd/lightningd. 2020-02-27 14:16:16 +10:30
subd.c lightningd: Added --subdaemon command to allow alternate subdaemons. 2020-02-04 10:44:13 +10:30
subd.h lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
watch.c wallet: remove edgecase around transaction checks 2020-01-02 16:56:42 +01:00
watch.h lightningd: fix occasional missing txid detection. 2019-06-28 03:31:43 +00:00