From 518f1b43e3d1764c07f0a9a69ec7cde2462481a4 Mon Sep 17 00:00:00 2001 From: Alex Pyattaev Date: Tue, 4 Feb 2025 09:45:02 +0000 Subject: [PATCH] ban LegacyVersion CRDS --- gossip/src/crds_data.rs | 2 +- gossip/src/protocol.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gossip/src/crds_data.rs b/gossip/src/crds_data.rs index 67cd680647f1ce..b2961e0c3ae369 100644 --- a/gossip/src/crds_data.rs +++ b/gossip/src/crds_data.rs @@ -89,7 +89,7 @@ impl Sanitize for CrdsData { } val.sanitize() } - CrdsData::LegacyVersion(version) => version.sanitize(), + CrdsData::LegacyVersion(_) => Err(SanitizeError::InvalidValue), CrdsData::Version(version) => version.sanitize(), CrdsData::NodeInstance(node) => node.sanitize(), CrdsData::DuplicateShred(ix, shred) => { diff --git a/gossip/src/protocol.rs b/gossip/src/protocol.rs index 78551a687e0236..8429b3420b75fa 100644 --- a/gossip/src/protocol.rs +++ b/gossip/src/protocol.rs @@ -154,10 +154,10 @@ impl Sanitize for Protocol { Protocol::PullRequest(filter, val) => { filter.sanitize()?; // PullRequest is only allowed to have ContactInfo in its CrdsData - if let CrdsData::LegacyContactInfo(_) | CrdsData::ContactInfo(_) = val.data() { - return val.sanitize(); + match val.data() { + CrdsData::LegacyContactInfo(_) | CrdsData::ContactInfo(_) => val.sanitize(), + _ => Err(SanitizeError::InvalidValue), } - return Err(SanitizeError::InvalidValue); } Protocol::PullResponse(_, val) => { // PullResponse is allowed to carry anything in its CrdsData, except for deprecated fields