From 11adcfc97b67c199d6975f3b18f78d32b9c05510 Mon Sep 17 00:00:00 2001 From: Todd Mortimer Date: Tue, 6 Apr 2021 22:41:41 -0400 Subject: [PATCH] Tweak to how we handle incomplete parse. --- src/extensions/idle.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/extensions/idle.rs b/src/extensions/idle.rs index 5be5a07..c1b6ee7 100644 --- a/src/extensions/idle.rs +++ b/src/extensions/idle.rs @@ -176,7 +176,15 @@ impl<'a, T: Read + Write + 'a> Handle<'a, T> { // Update remaining data with unparsed data if needed. if rest.is_empty() { v.clear(); - } else if rest.len() != v.len() { + } else { + // Assert on partial parse in debug builds - we expect to always parse all + // or none of the input buffer. On release builds, we still do the right thing. + debug_assert!( + rest.len() != v.len(), + "Unexpected partial parse: input: {:?}, output: {:?}", + v, + rest + ); let used = v.len() - rest.len(); v.drain(0..used); }