mirror of
https://github.com/aljazceru/lightning.git
synced 2026-01-07 16:14:26 +01:00
common/gossip_store: fix leak on partial read.
Very unusual, but it can happen, and we don't free: ``` lightningd-1 2022-07-12T04:21:22.591Z DEBUG gossipd: REPLY WIRE_GOSSIPD_DEV_MEMLEAK_REPLY with 0 fds lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: MEMLEAK: 0x55e73123d008 lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: label=common/gossip_store.c:92:u8[] lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: backtrace: lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: ccan/ccan/tal/tal.c:442 (tal_alloc_) lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: ccan/ccan/tal/tal.c:471 (tal_alloc_arr_) lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: common/gossip_store.c:92 (gossip_store_next) lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: connectd/multiplex.c:433 (maybe_from_gossip_store) lightningd-1 2022-07-12T04:21:22.645Z **BROKEN** connectd: connectd/multiplex.c:856 (write_to_peer) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: ccan/ccan/io/io.c:59 (next_plan) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: ccan/ccan/io/io.c:407 (do_plan) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: ccan/ccan/io/io.c:423 (io_ready) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: ccan/ccan/io/poll.c:453 (io_loop) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: connectd/connectd.c:2083 (main) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: ../sysdeps/nptl/libc_start_call_main.h:58 (__libc_start_call_main) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: ../csu/libc-start.c:392 (__libc_start_main_impl) lightningd-1 2022-07-12T04:21:22.646Z **BROKEN** connectd: parents: ```
This commit is contained in:
committed by
neil saitug
parent
671e66490e
commit
9cff125590
@@ -150,7 +150,7 @@ u8 *gossip_store_next(const tal_t *ctx,
|
||||
msg = tal_arr(ctx, u8, msglen);
|
||||
r = pread(*gossip_store_fd, msg, msglen, *off + r);
|
||||
if (r != msglen)
|
||||
return NULL;
|
||||
return tal_free(msg);
|
||||
|
||||
if (checksum != crc32c(be32_to_cpu(hdr.timestamp), msg, msglen))
|
||||
status_failed(STATUS_FAIL_INTERNAL_ERROR,
|
||||
|
||||
Reference in New Issue
Block a user