Skip to content

Commit ecd1b7a

Browse files
committed
lnonion: explicitly forbid nesting trampoline-in-trampoline
This assert is needed because I don't want to reason about what could happen without it. We currently use fixed 400 bytes trampoline onion sizes, which would implicitly prevent this. However the current bolts PR actually specifies variable size trampoline onions.
1 parent d15598b commit ecd1b7a

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

electrum/lnonion.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,8 @@ def process_onion_packet(
396396
# trampoline
397397
trampoline_onion_packet = hop_data.payload.get('trampoline_onion_packet')
398398
if trampoline_onion_packet:
399+
if is_trampoline:
400+
raise Exception("found nested trampoline inside trampoline")
399401
top_version = trampoline_onion_packet.get('version')
400402
top_public_key = trampoline_onion_packet.get('public_key')
401403
top_hops_data = trampoline_onion_packet.get('hops_data')

0 commit comments

Comments
 (0)