From d227180cbffca906d539fb42b75aa372678b89c1 Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Wed, 7 Aug 2024 17:18:45 +0200 Subject: [PATCH] add some log messages to help troubleshooting --- bin/lens-server/src/main.rs | 4 ++++ crates/lens-protocol/src/lib.rs | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/bin/lens-server/src/main.rs b/bin/lens-server/src/main.rs index 324b479..763776e 100644 --- a/bin/lens-server/src/main.rs +++ b/bin/lens-server/src/main.rs @@ -147,8 +147,12 @@ fn main() -> Result<()> { let mut server = Server::listen(); + info!("Loading library..."); + let library = unsafe { LensLibrary::new(dll_path, (2448, 2448))? }; + info!("Listening for requests..."); + loop { let req = server.recv().context("failed to read request")?; match req { diff --git a/crates/lens-protocol/src/lib.rs b/crates/lens-protocol/src/lib.rs index 2899f70..a1de89c 100644 --- a/crates/lens-protocol/src/lib.rs +++ b/crates/lens-protocol/src/lib.rs @@ -18,6 +18,8 @@ pub enum Error { MissingPipe, #[error("failed to ping server")] PingFailed, + #[error("Invalid size of message (is the pipeline really speaking lens?): {0}")] + InvalidMessageSize(u32), } type Result = result::Result; @@ -204,6 +206,9 @@ pub fn read_message(read: &mut impl Read) -> Result> { let mut len_buf = [0; 4]; read.read_exact(&mut len_buf)?; let len = u32::from_be_bytes(len_buf); + if len < 0 || len > 0xFFFFFF { + return Err(Error::InvalidMessageSize(len)); + } // This protocol isn't talkative, its ok to allocate here. let mut data = vec![0; len as usize]; read.read_exact(&mut data)?;