mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 02:25:23 +00:00
msg_socket: delete impl for Mutex
The MsgOnSocket impl for Mutex contains a threading bug where it's possible for the object inside the Mutex to mutate after msg_size() and/or fd_count() has been called. Also it's not being used. BUG=b:162032986 TEST=cargo test -p msg_socket Change-Id: I41188547152236c8124d9ac9593deea93dc02c73 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2339308 Reviewed-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Richard Zhang <rizhang@google.com>
This commit is contained in:
parent
14fa6bdf5a
commit
649f116d9d
1 changed files with 0 additions and 23 deletions
|
@ -17,7 +17,6 @@ use std::sync::Arc;
|
|||
use base::{Error as SysError, EventFd};
|
||||
use data_model::*;
|
||||
use slice::{slice_read_helper, slice_write_helper};
|
||||
use sync::Mutex;
|
||||
|
||||
#[derive(Debug)]
|
||||
/// An error during transaction or serialization/deserialization.
|
||||
|
@ -190,28 +189,6 @@ impl<T: MsgOnSocket> MsgOnSocket for Option<T> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<T: MsgOnSocket> MsgOnSocket for Mutex<T> {
|
||||
fn uses_fd() -> bool {
|
||||
T::uses_fd()
|
||||
}
|
||||
|
||||
fn msg_size(&self) -> usize {
|
||||
self.lock().msg_size()
|
||||
}
|
||||
|
||||
fn fd_count(&self) -> usize {
|
||||
self.lock().fd_count()
|
||||
}
|
||||
|
||||
unsafe fn read_from_buffer(buffer: &[u8], fds: &[RawFd]) -> MsgResult<(Self, usize)> {
|
||||
T::read_from_buffer(buffer, fds).map(|(v, count)| (Mutex::new(v), count))
|
||||
}
|
||||
|
||||
fn write_to_buffer(&self, buffer: &mut [u8], fds: &mut [RawFd]) -> MsgResult<usize> {
|
||||
self.lock().write_to_buffer(buffer, fds)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: MsgOnSocket> MsgOnSocket for Arc<T> {
|
||||
fn uses_fd() -> bool {
|
||||
T::uses_fd()
|
||||
|
|
Loading…
Reference in a new issue