diff --git a/Cargo.toml b/Cargo.toml index cfc81e0e..7d96d14b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,7 +50,7 @@ hyper = "0.14.5" lazy_static = "1.4" libc = "0.2.107" log = "0.4.17" -nix = "0.24.1" +nix = "0.26.1" once_cell = "1.3.1" openssl = "0.10" percent-encoding = "2.1" diff --git a/proxmox-rest-server/debian/control b/proxmox-rest-server/debian/control index d2118df4..3392a935 100644 --- a/proxmox-rest-server/debian/control +++ b/proxmox-rest-server/debian/control @@ -15,7 +15,7 @@ Build-Depends: debhelper (>= 12), librust-lazy-static-1+default-dev (>= 1.4-~~) , librust-libc-0.2+default-dev (>= 0.2.107-~~) , librust-log-0.4+default-dev (>= 0.4.17-~~) , - librust-nix-0.24+default-dev (>= 0.24.1-~~) , + librust-nix-0.26+default-dev (>= 0.26.1-~~) , librust-once-cell-1+default-dev (>= 1.3.1-~~) , librust-percent-encoding-2+default-dev (>= 2.1-~~) , librust-proxmox-async-0.4+default-dev (>= 0.4.1-~~) , @@ -64,7 +64,7 @@ Depends: librust-lazy-static-1+default-dev (>= 1.4-~~), librust-libc-0.2+default-dev (>= 0.2.107-~~), librust-log-0.4+default-dev (>= 0.4.17-~~), - librust-nix-0.24+default-dev (>= 0.24.1-~~), + librust-nix-0.26+default-dev (>= 0.26.1-~~), librust-once-cell-1+default-dev (>= 1.3.1-~~), librust-percent-encoding-2+default-dev (>= 2.1-~~), librust-proxmox-async-0.4+default-dev (>= 0.4.1-~~), diff --git a/proxmox-router/debian/control b/proxmox-router/debian/control index 2e866aa8..7f753271 100644 --- a/proxmox-router/debian/control +++ b/proxmox-router/debian/control @@ -12,7 +12,7 @@ Build-Depends: debhelper (>= 12), librust-hyper-0.14+default-dev (>= 0.14.5-~~) , librust-hyper-0.14+full-dev (>= 0.14.5-~~) , librust-libc-0.2+default-dev (>= 0.2.107-~~) , - librust-nix-0.24+default-dev (>= 0.24.1-~~) , + librust-nix-0.26+default-dev (>= 0.26.1-~~) , librust-percent-encoding-2+default-dev (>= 2.1-~~) , librust-proxmox-async-0.4+default-dev (>= 0.4.1-~~) , librust-proxmox-lang-1+default-dev (>= 1.1-~~) , @@ -35,7 +35,7 @@ Multi-Arch: same Depends: ${misc:Depends}, librust-anyhow-1+default-dev, - librust-nix-0.24+default-dev (>= 0.24.1-~~), + librust-nix-0.26+default-dev (>= 0.26.1-~~), librust-percent-encoding-2+default-dev (>= 2.1-~~), librust-proxmox-async-0.4+default-dev (>= 0.4.1-~~), librust-proxmox-lang-1+default-dev (>= 1.1-~~), diff --git a/proxmox-schema/debian/control b/proxmox-schema/debian/control index cd605f10..7a690041 100644 --- a/proxmox-schema/debian/control +++ b/proxmox-schema/debian/control @@ -71,7 +71,7 @@ Depends: ${misc:Depends}, librust-proxmox-schema-dev (= ${binary:Version}), librust-libc-0.2+default-dev (>= 0.2.107-~~), - librust-nix-0.24+default-dev (>= 0.24.1-~~) + librust-nix-0.26+default-dev (>= 0.26.1-~~) Provides: librust-proxmox-schema-1+upid-api-impl-dev (= ${binary:Version}), librust-proxmox-schema-1.3+upid-api-impl-dev (= ${binary:Version}), diff --git a/proxmox-shared-memory/debian/control b/proxmox-shared-memory/debian/control index 9c9a4796..24561898 100644 --- a/proxmox-shared-memory/debian/control +++ b/proxmox-shared-memory/debian/control @@ -8,7 +8,7 @@ Build-Depends: debhelper (>= 12), libstd-rust-dev , librust-anyhow-1+default-dev , librust-libc-0.2+default-dev (>= 0.2.107-~~) , - librust-nix-0.24+default-dev (>= 0.24.1-~~) , + librust-nix-0.26+default-dev (>= 0.26.1-~~) , librust-proxmox-sys-0.4+default-dev (>= 0.4.1-~~) Maintainer: Proxmox Support Team Standards-Version: 4.6.1 @@ -24,7 +24,7 @@ Depends: ${misc:Depends}, librust-anyhow-1+default-dev, librust-libc-0.2+default-dev (>= 0.2.107-~~), - librust-nix-0.24+default-dev (>= 0.24.1-~~), + librust-nix-0.26+default-dev (>= 0.26.1-~~), librust-proxmox-sys-0.4+default-dev (>= 0.4.1-~~) Provides: librust-proxmox-shared-memory+default-dev (= ${binary:Version}), diff --git a/proxmox-sys/debian/control b/proxmox-sys/debian/control index fd2d7a56..45077e57 100644 --- a/proxmox-sys/debian/control +++ b/proxmox-sys/debian/control @@ -11,7 +11,7 @@ Build-Depends: debhelper (>= 12), librust-lazy-static-1+default-dev (>= 1.4-~~) , librust-libc-0.2+default-dev (>= 0.2.107-~~) , librust-log-0.4+default-dev (>= 0.4.17-~~) , - librust-nix-0.24+default-dev (>= 0.24.1-~~) , + librust-nix-0.26+default-dev (>= 0.26.1-~~) , librust-proxmox-io-1+default-dev , librust-proxmox-lang-1+default-dev (>= 1.1-~~) , librust-proxmox-time-1+default-dev (>= 1.1.4-~~) , @@ -38,7 +38,7 @@ Depends: librust-lazy-static-1+default-dev (>= 1.4-~~), librust-libc-0.2+default-dev (>= 0.2.107-~~), librust-log-0.4+default-dev (>= 0.4.17-~~), - librust-nix-0.24+default-dev (>= 0.24.1-~~), + librust-nix-0.26+default-dev (>= 0.26.1-~~), librust-proxmox-io-1+default-dev, librust-proxmox-lang-1+default-dev (>= 1.1-~~), librust-proxmox-time-1+default-dev (>= 1.1.4-~~), diff --git a/proxmox-sys/src/mmap.rs b/proxmox-sys/src/mmap.rs index a112ef21..1ce19e5c 100644 --- a/proxmox-sys/src/mmap.rs +++ b/proxmox-sys/src/mmap.rs @@ -2,9 +2,11 @@ use std::convert::TryFrom; use std::mem::MaybeUninit; +use std::num::NonZeroUsize; use std::os::unix::io::RawFd; -use std::{io, mem, ptr}; +use std::{io, mem}; +use anyhow::format_err; use nix::sys::mman; use proxmox_lang::error::io_err_other; @@ -32,12 +34,14 @@ impl Mmap { prot: mman::ProtFlags, flags: mman::MapFlags, ) -> io::Result { - let byte_len = count * mem::size_of::(); + let byte_len = NonZeroUsize::new(count * mem::size_of::()) + .ok_or(io_err_other(format_err!("mapped length must not be zero")))?; + // libc::size_t vs usize #[allow(clippy::useless_conversion)] let data = mman::mmap( - ptr::null_mut(), - libc::size_t::try_from(byte_len).map_err(io_err_other)?, + None, + byte_len, prot, flags, fd,