Skip to content

Commit

Permalink
Accept empty latching field
Browse files Browse the repository at this point in the history
  • Loading branch information
newpavlov committed May 22, 2024
1 parent 1a3aa5a commit 44e9cb0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/record_types/chunk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ pub enum Compression {

impl Compression {
fn decompress(self, data: &[u8], decompressed_size: Option<u32>) -> Result<Cow<'_, [u8]>> {
let decompressed_len = decompressed_size.map(|s| s as usize).unwrap_or(data.len());
Ok(match self {
Compression::Bzip2 => {
let mut decompressed = Vec::new();
decompressed.reserve(decompressed_size.map(|s| s as usize).unwrap_or(data.len()));
let mut decompressed = Vec::with_capacity(decompressed_len);
let mut decompressor = bzip2::Decompress::new(false);
decompressor
.decompress_vec(data, &mut decompressed)
Expand All @@ -32,8 +32,7 @@ impl Compression {
Compression::Lz4 => {
let mut decoder = lz4::Decoder::new(data)
.map_err(|e| Error::Lz4DecompressionError(e.to_string()))?;
let mut decompressed = Vec::new();
decompressed.reserve(decompressed_size.map(|s| s as usize).unwrap_or(data.len()));
let mut decompressed = Vec::with_capacity(decompressed_len);
std::io::copy(&mut decoder, &mut decompressed).map_err(|_| {
Error::Lz4DecompressionError("Error while decoding".to_string())
})?;
Expand Down
4 changes: 4 additions & 0 deletions src/record_types/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ impl<'a> RecordGen<'a> for Connection<'a> {
latching = match val {
b"1" => true,
b"0" => false,
b"" => {
log::warn!("Got empty latching field, interpreting it as 0");
false
}
_ => return Err(Error::InvalidRecord),
}
}
Expand Down

0 comments on commit 44e9cb0

Please sign in to comment.