Skip to content

Commit 78755a9

Browse files
shikharclaude
andcommitted
fix(common): return error instead of panicking on truncated record bytes
Replace `get_uint` with `try_get_uint` when parsing metered size in `TryFrom<Bytes> for Metered<Record>`, consistent with the rest of the deserialization code. Closes #355 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7065d94 commit 78755a9

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

common/src/record/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,9 @@ impl TryFrom<Bytes> for Metered<Record> {
313313
let magic_byte = MagicByte::try_from(buf.get_u8())
314314
.map_err(|msg| InternalRecordError::InvalidValue("MagicByte", msg))?;
315315

316-
let metered_size = buf.get_uint(magic_byte.metered_size_varlen as usize) as usize;
316+
let metered_size =
317+
buf.try_get_uint(magic_byte.metered_size_varlen as usize)
318+
.map_err(|_| InternalRecordError::Truncated("MeteredSize"))? as usize;
317319

318320
Ok(Self {
319321
size: metered_size,

0 commit comments

Comments
 (0)