URI: 
       tfix #6200: if we cannot parse an onion, send a failure code that has the BADONION bit - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 2571669a32e62af08f759ca8c826a9095289e6ef
   DIR parent 47b3c49b2563da70112acd2773671fb621f23326
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Fri,  5 Jun 2020 12:31:04 +0200
       
       fix #6200: if we cannot parse an onion, send a failure code that has the BADONION bit
       
       Diffstat:
         M electrum/lnpeer.py                  |       9 ++++++---
       
       1 file changed, 6 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py
       t@@ -1534,7 +1534,6 @@ class Peer(Logger):
                            onion_packet_bytes = bytes.fromhex(onion_packet_hex)
                            onion_packet = None
                            try:
       -                        if self.network.config.get('test_fail_malformed_htlc'): raise InvalidOnionPubkey()
                                onion_packet = OnionPacket.from_bytes(onion_packet_bytes)
                                processed_onion = process_onion_packet(onion_packet, associated_data=payment_hash, our_onion_private_key=self.privkey)
                            except UnsupportedOnionPacketVersion:
       t@@ -1545,11 +1544,15 @@ class Peer(Logger):
                                error_reason = OnionRoutingFailureMessage(code=OnionFailureCode.INVALID_ONION_HMAC, data=sha256(onion_packet_bytes))
                            except Exception as e:
                                self.logger.info(f"error processing onion packet: {e!r}")
       -                        error_reason = OnionRoutingFailureMessage(code=OnionFailureCode.TEMPORARY_NODE_FAILURE, data=b'')
       +                        error_reason = OnionRoutingFailureMessage(code=OnionFailureCode.INVALID_ONION_VERSION, data=sha256(onion_packet_bytes))
                            else:
       +                        if self.network.config.get('test_fail_malformed_htlc'):
       +                            error_reason = OnionRoutingFailureMessage(code=OnionFailureCode.INVALID_ONION_VERSION, data=sha256(onion_packet_bytes))
                                if self.network.config.get('test_fail_htlcs_with_temp_node_failure'):
                                    error_reason = OnionRoutingFailureMessage(code=OnionFailureCode.TEMPORARY_NODE_FAILURE, data=b'')
       -                        elif processed_onion.are_we_final:
       +
       +                    if not error_reason:
       +                        if processed_onion.are_we_final:
                                    preimage, error_reason = self.maybe_fulfill_htlc(
                                        chan=chan,
                                        htlc=htlc,