diff --git a/io_jail/src/lib.rs b/io_jail/src/lib.rs index 59d6887d84..82034a32e8 100644 --- a/io_jail/src/lib.rs +++ b/io_jail/src/lib.rs @@ -250,9 +250,10 @@ impl Minijail { pub fn set_rlimit( &mut self, kind: libc::c_int, - cur: libc::rlim_t, - max: libc::rlim_t, + cur: libc::rlim64_t, + max: libc::rlim64_t, ) -> Result<()> { + // TODO(chirantan): Switch to minijail_rlimit64 once that lands in libminijail. let errno = unsafe { libminijail::minijail_rlimit(self.jail, kind, cur, max) }; if errno == 0 { Ok(()) diff --git a/io_jail/src/libminijail.rs b/io_jail/src/libminijail.rs index 14175dc053..7347f417d0 100644 --- a/io_jail/src/libminijail.rs +++ b/io_jail/src/libminijail.rs @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -use libc::{gid_t, pid_t, rlim_t, uid_t}; +use libc::{gid_t, pid_t, uid_t}; use std::os::raw::{c_char, c_int, c_long, c_ulong}; /// Struct minijail is an opaque type inside libminijail. @@ -19,7 +19,7 @@ extern "C" { pub fn minijail_keep_supplementary_gids(j: *mut minijail); pub fn minijail_change_user(j: *mut minijail, user: *const c_char) -> c_int; pub fn minijail_change_group(j: *mut minijail, group: *const c_char) -> c_int; - pub fn minijail_rlimit(j: *mut minijail, kind: c_int, cur: rlim_t, max: rlim_t) -> c_int; + pub fn minijail_rlimit(j: *mut minijail, kind: c_int, cur: u64, max: u64) -> c_int; pub fn minijail_use_seccomp(j: *mut minijail); pub fn minijail_no_new_privs(j: *mut minijail); pub fn minijail_use_seccomp_filter(j: *mut minijail); diff --git a/src/linux.rs b/src/linux.rs index bd6ee5ce16..ffdb829525 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -287,7 +287,7 @@ impl AsRawFd for TaggedControlSocket { } } -fn get_max_open_files() -> Result { +fn get_max_open_files() -> Result { let mut buf = String::with_capacity(32); File::open("/proc/sys/fs/file-max") .and_then(|mut f| f.read_to_string(&mut buf))