summary refs log tree commit diff
path: root/msg_socket
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2020-05-12 17:35:36 -0700
committerCommit Bot <commit-bot@chromium.org>2020-05-16 02:19:37 +0000
commit73665866a047c4602ab25ae6e20ce1f98f1f8e6e (patch)
tree5e86ede9bcc8b673e228e0b91058623ae841e2d5 /msg_socket
parent7ea121b916bba02c87d61ba35e38c8bd27b17163 (diff)
downloadcrosvm-73665866a047c4602ab25ae6e20ce1f98f1f8e6e.tar
crosvm-73665866a047c4602ab25ae6e20ce1f98f1f8e6e.tar.gz
crosvm-73665866a047c4602ab25ae6e20ce1f98f1f8e6e.tar.bz2
crosvm-73665866a047c4602ab25ae6e20ce1f98f1f8e6e.tar.lz
crosvm-73665866a047c4602ab25ae6e20ce1f98f1f8e6e.tar.xz
crosvm-73665866a047c4602ab25ae6e20ce1f98f1f8e6e.tar.zst
crosvm-73665866a047c4602ab25ae6e20ce1f98f1f8e6e.zip
msg_socket: remove MsgOnSocket impl for RawFd, an alias for i32
This implementation makes it impossible to use i32 as ordinary data in a
MsgOnSocket implementation. It is also error prone because i32 is the
default type for integer literals in Rust, and #[derive(MsgOnSocket)] on
structs with an i32 would suddenly be transmitting a RawFd.

This change also replaces the uses of RawFd's MsgOnSocket impl for one
based on File.

TEST=cargo build
BUG=None

Change-Id: I9da392e34e62fe61f773f24d656dbcbf4716f1a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2197777
Tested-by: Zach Reizner <zachr@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Zach Reizner <zachr@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'msg_socket')
-rw-r--r--msg_socket/src/msg_on_socket.rs26
1 files changed, 1 insertions, 25 deletions
diff --git a/msg_socket/src/msg_on_socket.rs b/msg_socket/src/msg_on_socket.rs
index 1172b3d..eeaf1bd 100644
--- a/msg_socket/src/msg_on_socket.rs
+++ b/msg_socket/src/msg_on_socket.rs
@@ -143,30 +143,6 @@ impl MsgOnSocket for SysError {
     }
 }
 
-impl MsgOnSocket for RawFd {
-    fn fixed_size() -> Option<usize> {
-        Some(0)
-    }
-
-    fn fd_count(&self) -> usize {
-        1
-    }
-
-    unsafe fn read_from_buffer(_buffer: &[u8], fds: &[RawFd]) -> MsgResult<(Self, usize)> {
-        if fds.is_empty() {
-            return Err(MsgError::ExpectFd);
-        }
-        Ok((fds[0], 1))
-    }
-    fn write_to_buffer(&self, _buffer: &mut [u8], fds: &mut [RawFd]) -> MsgResult<usize> {
-        if fds.is_empty() {
-            return Err(MsgError::WrongFdBufferSize);
-        }
-        fds[0] = *self;
-        Ok(1)
-    }
-}
-
 impl<T: MsgOnSocket> MsgOnSocket for Option<T> {
     fn uses_fd() -> bool {
         T::uses_fd()
@@ -288,7 +264,7 @@ macro_rules! rawfd_impl {
                 Ok(($type::from_raw_fd(fds[0]), 1))
             }
             fn write_to_buffer(&self, _buffer: &mut [u8], fds: &mut [RawFd]) -> MsgResult<usize> {
-                if fds.len() < 1 {
+                if fds.is_empty() {
                     return Err(MsgError::WrongFdBufferSize);
                 }
                 fds[0] = self.as_raw_fd();