Skip to content

Commit ef05353

Browse files
committed
feat: validate the header in read_trace()
1 parent 6811e6b commit ef05353

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

runtime_tracing/src/capnptrace.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,12 @@ fn get_full_value_record(
404404
})
405405
}
406406

407-
pub fn read_trace(input: impl std::io::BufRead) -> ::capnp::Result<Vec<crate::TraceLowLevelEvent>> {
407+
pub fn read_trace(input: &mut impl std::io::BufRead) -> ::capnp::Result<Vec<crate::TraceLowLevelEvent>> {
408+
let mut header_buf = [0; 8];
409+
input.read_exact(&mut header_buf)?;
410+
if header_buf != HEADER {
411+
panic!("Invalid file header (wrong file format or incompatible version)");
412+
}
408413
let message_reader = serialize_packed::read_message(
409414
input,
410415
::capnp::message::ReaderOptions::new(),

0 commit comments

Comments
 (0)