diff --git a/netstack/src/scheme/tcp.rs b/netstack/src/scheme/tcp.rs index 28da52a70a..c63e32a9a4 100644 --- a/netstack/src/scheme/tcp.rs +++ b/netstack/src/scheme/tcp.rs @@ -54,7 +54,11 @@ impl<'a> SchemeSocket for TcpSocket<'a> { metadata: &[u64], _ctx: &CallerCtx, ) -> SyscallResult { - match SocketCall::from(metadata[0]) { + let verb = match SocketCall::try_from_raw(metadata[0] as usize) { + Some(v) => v, + None => return Err(SyscallError::new(syscall::EINVAL)), + }; + match verb { SocketCall::SendMsg => { let flags = metadata[1] as u16; // smoltcp's TCP socket has no MSG_NOSIGNAL awareness: a