diff --git a/pubky-common/src/session.rs b/pubky-common/src/session.rs index 5ce64d0..494265f 100644 --- a/pubky-common/src/session.rs +++ b/pubky-common/src/session.rs @@ -68,6 +68,10 @@ impl Session { } pub fn deserialize(bytes: &[u8]) -> Result { + if bytes.is_empty() { + return Err(Error::EmptyPayload); + } + if bytes[0] > 0 { return Err(Error::UnknownVersion); } @@ -82,6 +86,8 @@ pub type Result = core::result::Result; #[derive(thiserror::Error, Debug)] pub enum Error { + #[error("Empty payload")] + EmptyPayload, #[error("Unknown version")] UnknownVersion, #[error(transparent)] @@ -123,4 +129,9 @@ mod tests { assert_eq!(deseiralized, session) } + + #[test] + fn deserialize() { + let deseiralized = Session::deserialize(&[]).unwrap(); + } }