From 11c21f97a6c327d5705f6cd848873e594af5332e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 7 Apr 2020 16:33:04 +0930 Subject: [PATCH] devtools/decodemsg: don't crash if we have multiple tlv options. We call tal_count(msg) after we've moved msg, and that causes an abort. Signed-off-by: Rusty Russell --- tools/gen/print_impl_template | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/gen/print_impl_template b/tools/gen/print_impl_template index d8f13e731..ec6cb8f55 100644 --- a/tools/gen/print_impl_template +++ b/tools/gen/print_impl_template @@ -138,9 +138,8 @@ ${print_fieldset(msg.fields.values(), False, '&cursor', '&plen')} void print${options.enum_name}_tlv_message(const char *tlv_name, const u8 *msg) { % if bool(tlvs): - size_t plen; + size_t plen = tal_count(msg); % for tlv_name in tlvs: - plen = tal_count(msg); if (strcmp(tlv_name, "${tlv_name}") == 0) { printwire_tlvs(tlv_name, &msg, &plen, print_tlvs_${tlv_name}, ARRAY_SIZE(print_tlvs_${tlv_name})); }