mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
decodemsg: if decode fails, status 1.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
8f39002715
commit
b3a2666a3e
1 changed files with 14 additions and 9 deletions
|
@ -16,6 +16,8 @@ int main(int argc, char *argv[])
|
||||||
const u8 *m;
|
const u8 *m;
|
||||||
bool onion = false;
|
bool onion = false;
|
||||||
char *tlv_name = NULL;
|
char *tlv_name = NULL;
|
||||||
|
bool ok = true;
|
||||||
|
|
||||||
setup_locale();
|
setup_locale();
|
||||||
|
|
||||||
opt_register_noarg("--onion", opt_set_bool, &onion,
|
opt_register_noarg("--onion", opt_set_bool, &onion,
|
||||||
|
@ -40,13 +42,13 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (onion)
|
if (onion)
|
||||||
if (tlv_name)
|
if (tlv_name)
|
||||||
printonion_wire_tlv_message(tlv_name, m);
|
ok &= printonion_wire_tlv_message(tlv_name, m);
|
||||||
else
|
else
|
||||||
printonion_wire_message(m);
|
ok &= printonion_wire_message(m);
|
||||||
else if (tlv_name)
|
else if (tlv_name)
|
||||||
printpeer_wire_tlv_message(tlv_name, m);
|
ok &= printpeer_wire_tlv_message(tlv_name, m);
|
||||||
else
|
else
|
||||||
printpeer_wire_message(m);
|
ok &= printpeer_wire_message(m);
|
||||||
} else {
|
} else {
|
||||||
u8 *f = grab_fd(NULL, STDIN_FILENO);
|
u8 *f = grab_fd(NULL, STDIN_FILENO);
|
||||||
size_t off = 0;
|
size_t off = 0;
|
||||||
|
@ -56,28 +58,31 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (off + sizeof(len) > tal_count(f)) {
|
if (off + sizeof(len) > tal_count(f)) {
|
||||||
warnx("Truncated file");
|
warnx("Truncated file");
|
||||||
|
ok = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
memcpy(&len, f + off, sizeof(len));
|
memcpy(&len, f + off, sizeof(len));
|
||||||
off += sizeof(len);
|
off += sizeof(len);
|
||||||
if (off + be16_to_cpu(len) > tal_count(f)) {
|
if (off + be16_to_cpu(len) > tal_count(f)) {
|
||||||
warnx("Truncated file");
|
warnx("Truncated file");
|
||||||
|
ok = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m = tal_dup_arr(f, u8, f + off, be16_to_cpu(len), 0);
|
m = tal_dup_arr(f, u8, f + off, be16_to_cpu(len), 0);
|
||||||
if (onion)
|
if (onion)
|
||||||
if (tlv_name)
|
if (tlv_name)
|
||||||
printonion_wire_tlv_message(tlv_name, m);
|
ok &= printonion_wire_tlv_message(tlv_name, m);
|
||||||
else
|
else
|
||||||
printonion_wire_message(m);
|
ok &= printonion_wire_message(m);
|
||||||
else if (tlv_name)
|
else if (tlv_name)
|
||||||
printpeer_wire_tlv_message(tlv_name, m);
|
ok &= printpeer_wire_tlv_message(tlv_name, m);
|
||||||
else
|
else
|
||||||
printpeer_wire_message(m);
|
ok &= printpeer_wire_message(m);
|
||||||
off += be16_to_cpu(len);
|
off += be16_to_cpu(len);
|
||||||
tal_free(m);
|
tal_free(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
return 0;
|
|
||||||
|
return ok ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue