From 73da5ee5d06b5f62c186b31ce37f7669edc8bbf2 Mon Sep 17 00:00:00 2001 From: Ava Howell Date: Tue, 4 Jun 2024 19:53:24 -0700 Subject: [PATCH] fix client state: disallow empty chain id --- crates/ibc-types-lightclients-tendermint/src/client_state.rs | 4 ++++ crates/ibc-types-lightclients-tendermint/src/error.rs | 2 ++ 2 files changed, 6 insertions(+) diff --git a/crates/ibc-types-lightclients-tendermint/src/client_state.rs b/crates/ibc-types-lightclients-tendermint/src/client_state.rs index 93f116bb..0b2003a0 100644 --- a/crates/ibc-types-lightclients-tendermint/src/client_state.rs +++ b/crates/ibc-types-lightclients-tendermint/src/client_state.rs @@ -79,6 +79,10 @@ impl ClientState { }); } + if chain_id.as_str() == "" { + return Err(Error::ChainIdEmpty); + } + // `TrustThreshold` is guaranteed to be in the range `[0, 1)`, but a `TrustThreshold::ZERO` // value is invalid in this context if trust_level == TrustThreshold::ZERO { diff --git a/crates/ibc-types-lightclients-tendermint/src/error.rs b/crates/ibc-types-lightclients-tendermint/src/error.rs index 2fb2420a..8e71652d 100644 --- a/crates/ibc-types-lightclients-tendermint/src/error.rs +++ b/crates/ibc-types-lightclients-tendermint/src/error.rs @@ -22,6 +22,8 @@ pub enum Error { len: usize, max_len: usize, }, + /// Chain ID cannot be empty + ChainIdEmpty, /// invalid header, failed basic validation: `{reason}`, error: `{error}` InvalidHeader { reason: String,