fix: Upgrade to v0.3.8 and fix parsing security issues

- Upgrade to version 0.3.8
- Add data length validation to prevent out-of-bounds access
- Fix boundary check issues in all protocol parsers
This commit is contained in:
ysq
2025-08-22 17:58:57 +08:00
parent 92fd3ad5f4
commit e6912a8915
9 changed files with 52 additions and 10 deletions
@@ -80,6 +80,9 @@ pub struct AmmInfo {
pub const AMM_INFO_SIZE: usize = 752;
pub fn amm_info_decode(data: &[u8]) -> Option<AmmInfo> {
if data.len() < AMM_INFO_SIZE {
return None;
}
borsh::from_slice::<AmmInfo>(&data[..AMM_INFO_SIZE]).ok()
}
@@ -134,5 +137,8 @@ pub struct MarketState {
pub const MARKET_STATE_SIZE: usize = 388;
pub fn market_state_decode(data: &[u8]) -> Option<MarketState> {
if data.len() < MARKET_STATE_SIZE {
return None;
}
borsh::from_slice::<MarketState>(&data[..MARKET_STATE_SIZE]).ok()
}