Lagrang3
7e5cf41b4e
htlc_wire: fix crash when adding an HTLC
In line channeld/channeld_wiregen.c:832 `*added+i` is not a tal object hence
the instruction in common/htlc_wire.c:200 `tal_arr(ctx, struct tlv_field, 0);` crashes CLN.
This is fixed by stating that added_htlc is a a varsize_type.
Logs:
2025-08-16T02:25:28.640Z **BROKEN** lightningd: FATAL SIGNAL 6 (version v25.05-200-g79b959b)V
...
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:95 (call_error) 0x54f6bc
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:169 (check_bounds) 0x54f75a
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:178 (to_tal_hdr) 0x54f782
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:193 (to_tal_hdr_or_null) 0x54f7c7
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:471 (tal_alloc_) 0x54ffe4
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/tal/tal.c:517 (tal_alloc_arr_) 0x5500c4
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: common/htlc_wire.c:200 (fromwire_len_and_tlvstream) 0x48d63d
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: common/htlc_wire.c:234 (fromwire_added_htlc) 0x48dd23
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: channeld/channeld_wiregen.c:832 (fromwire_channeld_got_commitsig) 0x4c61fa
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/peer_htlcs.c:2377 (peer_got_commitsig) 0x4549cb
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/channel_control.c:1552 (channel_msg) 0x4140fe
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/subd.c:560 (sd_msg_read) 0x461513
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/io.c:60 (next_plan) 0x544885
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/io.c:422 (do_plan) 0x544cea
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/io.c:439 (io_ready) 0x544d9d
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: ccan/ccan/io/poll.c:455 (io_loop) 0x54665d
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/io_loop_with_timers.c:22 (io_loop_with_timers) 0x42d220
2025-08-16T02:25:28.640Z **BROKEN** lightningd: backtrace: lightningd/lightningd.c:1487 (main) 0x43280f
gdb inspection:
830 *added = num_added ? tal_arr(ctx, struct added_htlc, num_added) : NULL;
831 for (size_t i = 0; i < num_added; i++)
832 fromwire_added_htlc(&cursor, &plen, *added + i);
(gdb) p i
$3 = 1
Changelog-None: crash introduced this release.
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
[ Added test, removed Changelog --RR ]
2025-08-27 14:14:31 +09:30
..
2025-08-14 14:04:11 +09:30
2025-05-06 12:27:53 +09:30
2023-10-27 11:19:56 +10:30
2025-04-01 13:29:28 -05:00
2025-04-02 11:22:54 +10:30
2025-08-19 13:37:50 +09:30
2025-01-21 09:18:25 +10:30
2025-08-19 13:37:50 +09:30
2025-05-15 16:40:33 +09:30
2025-05-17 13:05:04 -05:00
2025-05-15 16:40:33 +09:30
2025-08-07 16:13:20 +09:30
2025-08-19 13:37:50 +09:30
2025-08-19 13:37:50 +09:30
2025-04-29 13:31:23 +09:30
2025-04-29 13:31:23 +09:30
2025-08-19 13:37:50 +09:30
2024-11-25 20:23:21 +10:30
2025-08-19 13:37:50 +09:30
2025-08-19 13:37:50 +09:30
2025-03-12 09:26:08 +10:30
2025-08-14 17:35:39 +09:30
2024-11-25 15:39:13 +10:30
2024-12-20 15:36:07 +10:30
2025-08-19 13:37:50 +09:30
2024-06-19 15:54:24 +09:30
2024-03-25 15:02:35 +10:30
2025-08-19 13:37:50 +09:30
2024-01-26 10:30:22 +10:30
2025-05-15 16:40:33 +09:30
2025-05-15 16:40:33 +09:30
2024-07-23 09:54:47 +09:30
2024-03-20 13:51:48 +10:30
2025-05-06 12:27:53 +09:30
2025-08-14 18:57:05 +09:30
2025-08-14 18:57:05 +09:30
2024-10-27 13:57:50 +11:00
2025-01-21 09:18:25 +10:30
2025-06-24 09:57:24 +09:30
2023-10-28 15:48:26 +10:30
2025-08-18 10:01:07 +09:30
2025-08-18 10:01:07 +09:30
2025-08-19 13:37:50 +09:30
2025-08-19 13:37:50 +09:30
2025-05-08 14:01:38 +09:30
2024-12-16 09:48:51 +10:30
2025-08-14 17:35:39 +09:30
2025-08-14 14:04:11 +09:30
2025-08-19 13:37:50 +09:30
2025-08-19 13:37:50 +09:30
2025-02-11 20:19:01 -06:00
2025-08-19 13:37:50 +09:30
2025-03-12 09:26:08 +10:30
2025-05-15 16:40:33 +09:30
2025-08-15 11:11:39 +09:30
2024-06-19 15:54:24 +09:30
2025-08-19 13:37:50 +09:30
2025-03-12 09:26:08 +10:30
2025-08-19 13:37:50 +09:30
2024-10-27 13:57:50 +11:00
2025-08-14 14:04:11 +09:30
2025-05-15 16:40:33 +09:30
2025-02-26 10:22:03 -06:00
2025-08-27 14:14:31 +09:30
2025-08-14 18:57:05 +09:30
2025-08-14 17:35:39 +09:30
2025-08-14 17:35:39 +09:30
2024-11-18 11:03:26 +10:30
2025-08-18 10:01:07 +09:30
2025-08-18 10:01:07 +09:30
2025-08-18 10:01:07 +09:30
2024-09-19 12:16:53 +09:30
2025-08-15 15:23:57 +09:30
2025-03-12 09:26:08 +10:30
2024-12-16 09:48:51 +10:30
2024-11-13 14:44:03 +10:30
2025-08-19 13:37:50 +09:30
2025-08-19 13:37:50 +09:30
2025-01-21 09:18:25 +10:30
2025-01-21 09:18:25 +10:30