Skip to content

Commit 5af7e51

Browse files
committed
oak-audit: issue 1
1 parent 46f4236 commit 5af7e51

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

light-clients/ics10-grandpa/src/client_def.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,13 @@ where
9292
))
9393
.into())
9494
}
95+
if header.finality_proof.unknown_headers.len() >= client_state.session_length() {
96+
return Err(Error::Custom(format!(
97+
"Number of unknown headers submitted exceeds max number of blocks in a session: max {}, got {}",
98+
client_state.session_length(), header.finality_proof.unknown_headers.len()
99+
))
100+
.into())
101+
}
95102
let headers_with_finality_proof = ParachainHeadersWithFinalityProof {
96103
finality_proof: header.finality_proof,
97104
parachain_header: header.parachain_header,

light-clients/ics10-grandpa/src/client_state.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,14 @@ impl<H> ClientState<H> {
146146
elapsed > self.relay_chain.trusting_period()
147147
}
148148

149+
pub fn session_length(&self) -> usize {
150+
match self.relay_chain {
151+
RelayChain::Polkadot => 2400,
152+
RelayChain::Kusama => 600,
153+
RelayChain::Rococo => 600,
154+
}
155+
}
156+
149157
pub fn with_frozen_height(self, h: Height) -> Result<Self, Error> {
150158
if h == Height::zero() {
151159
return Err(Error::Custom(

0 commit comments

Comments
 (0)