diff --git a/Cargo.lock b/Cargo.lock index 16d8cfa..a9a6123 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -154,9 +154,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.0" +version = "3.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" [[package]] name = "bytes" @@ -166,12 +166,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "3286b845d0fccbdd15af433f61c5970e711987036cb468f437ff6badd70f4e24" [[package]] name = "cfg-if" @@ -179,6 +176,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.34" @@ -188,7 +191,7 @@ dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -522,12 +525,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ "bitflags 2.4.2", "cfg-if", + "cfg_aliases", "libc", ] @@ -851,9 +855,9 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "same-file" @@ -872,18 +876,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", @@ -892,9 +896,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -951,19 +955,19 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "syn" -version = "2.0.49" +version = "2.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" +checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" dependencies = [ "proc-macro2", "quote", @@ -1235,7 +1239,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1253,7 +1257,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -1273,17 +1277,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -1294,9 +1298,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -1306,9 +1310,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -1318,9 +1322,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -1330,9 +1334,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -1342,9 +1346,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -1354,9 +1358,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -1366,6 +1370,6 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" diff --git a/example-hello/Cargo.toml b/example-hello/Cargo.toml index 3517b84..b42c0c5 100644 --- a/example-hello/Cargo.toml +++ b/example-hello/Cargo.toml @@ -11,7 +11,7 @@ sync = ["rsbinder/sync", "rsbinder-aidl/sync"] async = ["rsbinder/async", "rsbinder-aidl/async"] [dependencies] -lazy_static = "1" +lazy_static = "1.4" rsbinder = { version = "0.2.0", path = "../rsbinder", default-features = false } env_logger = "0.11" async-trait = "0.1" diff --git a/rsbinder-aidl/Cargo.toml b/rsbinder-aidl/Cargo.toml index 4062e6a..c0680d6 100644 --- a/rsbinder-aidl/Cargo.toml +++ b/rsbinder-aidl/Cargo.toml @@ -16,12 +16,12 @@ sync = [] async = [] [dependencies] -pest = "2" -pest_derive = "2" -convert_case = "0" -lazy_static = "1" -serde = { version = "1", features = ["derive"] } -tera = "1" +pest = "2.7" +pest_derive = "2.7" +convert_case = "0.6" +lazy_static = "1.4" +serde = { version = "1.0", features = ["derive"] } +tera = "1.19" [dev-dependencies] -similar = "2" +similar = "2.4" diff --git a/rsbinder-tests/Cargo.toml b/rsbinder-tests/Cargo.toml index 83cd3ac..9975876 100644 --- a/rsbinder-tests/Cargo.toml +++ b/rsbinder-tests/Cargo.toml @@ -7,11 +7,11 @@ publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -lazy_static = "1" +lazy_static = "1.4" rsbinder = { version = "0.2.0", path = "../rsbinder" } -tokio = { version = "1", features = ["full"] } +tokio = { version = "1.36", features = ["full"] } env_logger = "0.11" -nix = "0" +nix = "0.28" async-trait = "0.1" [build-dependencies] diff --git a/rsbinder-tests/src/test_client.rs b/rsbinder-tests/src/test_client.rs index 6eb4eac..5d0ecc8 100644 --- a/rsbinder-tests/src/test_client.rs +++ b/rsbinder-tests/src/test_client.rs @@ -40,7 +40,7 @@ use android::aidl::versioned::tests::{ use android::aidl::tests::vintf::{ VintfExtendableParcelable::VintfExtendableParcelable, VintfParcelable::VintfParcelable, }; -use std::fs::File; +use std::{fs::File, os::fd::IntoRawFd}; use std::io::{Read, Write}; use std::os::unix::io::FromRawFd; use std::sync::{Arc, Mutex}; @@ -326,7 +326,7 @@ fn build_pipe() -> (File, File) { // and pass them after checking if the function returned // without an error, so the descriptors should be valid // by that point - unsafe { (File::from_raw_fd(fds.0), File::from_raw_fd(fds.1)) } + unsafe { (File::from_raw_fd(fds.0.into_raw_fd()), File::from_raw_fd(fds.1.into_raw_fd())) } } /// Helper function that constructs a `File` from a `ParcelFileDescriptor`. diff --git a/rsbinder-tools/Cargo.toml b/rsbinder-tools/Cargo.toml index 86a723a..4027dee 100644 --- a/rsbinder-tools/Cargo.toml +++ b/rsbinder-tools/Cargo.toml @@ -11,9 +11,9 @@ readme = "README.md" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -lazy_static = "1" +lazy_static = "1.4" rsbinder = { version = "0.2.0", path = "../rsbinder" } log = "0.4" env_logger = "0.11" -nix = "0" +nix = "0.28" anstyle = "1.0" diff --git a/rsbinder/Cargo.toml b/rsbinder/Cargo.toml index c092ea5..ef50aec 100644 --- a/rsbinder/Cargo.toml +++ b/rsbinder/Cargo.toml @@ -18,12 +18,12 @@ tokio = ["async", "tokio/full"] async = ["rsbinder-aidl/async", "async-trait"] [dependencies] -nix = { version = "0", features = ["ioctl", "mount", "fs", "feature", "mman", "process"] } +nix = { version = "0.28", features = ["ioctl", "mount", "fs", "feature", "mman", "process"] } log = "0.4" -pretty_hex = { version = "0", package = "pretty-hex" } +pretty_hex = { version = "0.4", package = "pretty-hex" } downcast-rs = "1.2" async-trait = { version = "0.1", optional = true } -lazy_static = "1" +lazy_static = "1.4" tokio = { version = "1.35", optional = true, default-features = false } [build-dependencies] diff --git a/rsbinder/src/process_state.rs b/rsbinder/src/process_state.rs index b1ed5ef..e102812 100644 --- a/rsbinder/src/process_state.rs +++ b/rsbinder/src/process_state.rs @@ -1,6 +1,8 @@ // Copyright 2022 Jeff Kim <hiking90@gmail.com> // SPDX-License-Identifier: Apache-2.0 +use std::os::raw::c_void; +use std::ptr::NonNull; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::collections::HashMap; use std::sync::{Arc, RwLock, OnceLock}; @@ -31,7 +33,7 @@ const DEFAULT_MAX_BINDER_THREADS: u32 = 15; const DEFAULT_ENABLE_ONEWAY_SPAM_DETECTION: u32 = 1; struct MemoryMap { - ptr: *mut std::ffi::c_void, + ptr: NonNull<c_void>, size: usize, } unsafe impl Sync for MemoryMap {} @@ -93,7 +95,7 @@ impl ProcessState { vm_size, nix::sys::mman::ProtFlags::PROT_READ, nix::sys::mman::MapFlags::MAP_PRIVATE | nix::sys::mman::MapFlags::MAP_NORESERVE, - Some(&driver), + &driver, 0)?; (vm_start, vm_size) @@ -305,9 +307,7 @@ fn open_driver(driver: &Path, max_threads: u32) -> std::result::Result<File, Box impl Drop for ProcessState { fn drop(self: &mut ProcessState) { - let mut mmap = self.mmap.write().unwrap(); + let mmap = self.mmap.write().unwrap(); unsafe { nix::sys::mman::munmap(mmap.ptr, mmap.size).unwrap(); } - mmap.ptr = std::ptr::null_mut(); - mmap.size = 0; } } \ No newline at end of file