[invoice] Ignore InvalidLength fields
[rust-lightning] / lightning-invoice / src / de.rs
index 2ed356dafb8d3959b0c43cebed8ccdc161e69f39..777ac660f8e6b764d6ac5a191af3bcbb3636bc1d 100644 (file)
@@ -77,7 +77,7 @@ mod hrp_sm {
                                        } else if ['m', 'u', 'n', 'p'].contains(&read_symbol) {
                                                Ok(States::ParseAmountSiPrefix)
                                        } else {
-                                               Err(super::ParseError::MalformedHRP)
+                                               Err(super::ParseError::UnknownSiPrefix)
                                        }
                                },
                                States::ParseAmountSiPrefix => Err(super::ParseError::MalformedHRP),
@@ -419,7 +419,7 @@ fn parse_tagged_parts(data: &[u5]) -> Result<Vec<RawTaggedField>, ParseError> {
                        Ok(field) => {
                                parts.push(RawTaggedField::KnownSemantics(field))
                        },
-                       Err(ParseError::Skip) => {
+                       Err(ParseError::Skip)|Err(ParseError::Bech32Error(bech32::Error::InvalidLength)) => {
                                parts.push(RawTaggedField::UnknownSemantics(field.into()))
                        },
                        Err(e) => {return Err(e)}