mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-08-23 05:48:05 +00:00
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:
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user