From 1ffbc87737c8d3ce5991578554060b7545ac325d Mon Sep 17 00:00:00 2001 From: Thomas Van Strydonck Date: Tue, 11 Nov 2025 18:02:50 +0100 Subject: [PATCH] [RTE-608] Replace `mopa::any` with `std::any::Any` and upcasting - Remove `mopa` dependency - Update version of `sgxs-tools` and Cargo.lock - Eliminate Dependabot alert 5 and 40 --- Cargo.lock | 9 +-------- intel-sgx/sgxs-tools/Cargo.toml | 3 +-- intel-sgx/sgxs-tools/src/sgx_detect/main.rs | 2 -- intel-sgx/sgxs-tools/src/sgx_detect/tests/mod.rs | 5 +++-- .../sgxs-tools/src/sgx_detect/tests/scaffold.rs | 15 +++++++++------ 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5860c9435..a6fb771a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2043,12 +2043,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "mopa" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a785740271256c230f57462d3b83e52f998433a7062fc18f96d5999474a9f915" - [[package]] name = "native-tls" version = "0.2.10" @@ -3361,7 +3355,7 @@ dependencies = [ [[package]] name = "sgxs-tools" -version = "0.9.2" +version = "0.9.3" dependencies = [ "aesm-client", "anyhow", @@ -3375,7 +3369,6 @@ dependencies = [ "fnv", "lazy_static", "log 0.4.21", - "mopa", "num", "openssl", "petgraph", diff --git a/intel-sgx/sgxs-tools/Cargo.toml b/intel-sgx/sgxs-tools/Cargo.toml index 904067969..c154c59f4 100644 --- a/intel-sgx/sgxs-tools/Cargo.toml +++ b/intel-sgx/sgxs-tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sgxs-tools" -version = "0.9.2" +version = "0.9.3" authors = ["Fortanix, Inc."] license = "MPL-2.0" description = """ @@ -50,7 +50,6 @@ atty = "0.2" # MIT quote = "0.6" # MIT/Apache-2.0 proc-macro2 = "0.4" # MIT/Apache-2.0 petgraph = "0.7" # MIT/Apache-2.0 -mopa = "0.2" # MIT/Apache-2.0 syn = { version = "0.15", features = ["full"] } # MIT/Apache-2.0 fnv = "1" # MIT/Apache-2.0 proc-mounts = "0.3.0" # MIT diff --git a/intel-sgx/sgxs-tools/src/sgx_detect/main.rs b/intel-sgx/sgxs-tools/src/sgx_detect/main.rs index 52f46c2ab..e8c409300 100644 --- a/intel-sgx/sgxs-tools/src/sgx_detect/main.rs +++ b/intel-sgx/sgxs-tools/src/sgx_detect/main.rs @@ -36,8 +36,6 @@ extern crate log; extern crate anyhow; extern crate thiserror; #[macro_use] -extern crate mopa; -#[macro_use] extern crate serde_derive; #[macro_use] extern crate clap; diff --git a/intel-sgx/sgxs-tools/src/sgx_detect/tests/mod.rs b/intel-sgx/sgxs-tools/src/sgx_detect/tests/mod.rs index d62537f8b..bba3d7832 100644 --- a/intel-sgx/sgxs-tools/src/sgx_detect/tests/mod.rs +++ b/intel-sgx/sgxs-tools/src/sgx_detect/tests/mod.rs @@ -1,3 +1,4 @@ +use std::any::Any; use std::cell::Cell; use std::path::PathBuf; use std::rc::Rc; @@ -1154,8 +1155,8 @@ fn update>( support: &SgxSupport, hidden: &Cell, ) { - let dependent = dependent.downcast_mut::().unwrap(); - let dependency = dependency.downcast_ref::().unwrap(); + let dependent = (dependent as &mut dyn Any).downcast_mut::().unwrap(); + let dependency = (dependency as &dyn Any).downcast_ref::().unwrap(); dependent.update_dependency(dependency, support); let hiddenval = if U::CONTROL_VISIBILITY { diff --git a/intel-sgx/sgxs-tools/src/sgx_detect/tests/scaffold.rs b/intel-sgx/sgxs-tools/src/sgx_detect/tests/scaffold.rs index 07bb46fa0..6fe8a0bdd 100644 --- a/intel-sgx/sgxs-tools/src/sgx_detect/tests/scaffold.rs +++ b/intel-sgx/sgxs-tools/src/sgx_detect/tests/scaffold.rs @@ -1,4 +1,4 @@ -use std::any::TypeId; +use std::any::{Any, TypeId}; use std::cell::Cell; use std::cmp::Ordering; use std::fmt; @@ -11,10 +11,11 @@ use yansi::Paint; use crate::{paintalt, SgxSupport}; use super::debug; -pub trait DetectItem: Print + DebugSupport + Update + mopa::Any { - fn default() -> Box where Self: Sized; +pub trait DetectItem: Print + DebugSupport + Update + Any { + fn default() -> Box + where + Self: Sized; } -mopafy!(DetectItem); pub trait Update { fn update(&mut self, _support: &SgxSupport) {} @@ -121,7 +122,7 @@ impl DetectItemMap { Ordering::Greater => {}, } - assert_eq!(v, ::get_type_id(&*self.store[idx as usize])); + assert_eq!(v, (&*self.store[idx as usize] as &dyn Any).type_id()); idx } @@ -135,7 +136,9 @@ impl DetectItemMap { } pub fn lookup(&self) -> &T { - self.store[self.map[&TypeId::of::()] as usize].downcast_ref().unwrap() + (&*self.store[self.map[&TypeId::of::()] as usize] as &dyn Any) + .downcast_ref() + .unwrap() } }