agent: Use dup3 system call in unit tests of seccomp

Use `dup3` system call instead of `dup2` in unit tests of seccomp
because `dup2` is obsolete on aarch64.

Fixes: #2939

Signed-off-by: Manabu Sugimoto <Manabu.Sugimoto@sony.com>
This commit is contained in:
Manabu Sugimoto 2021-11-02 19:32:54 +09:00
parent 1aaa0599d9
commit b468dc500a

View File

@ -95,7 +95,7 @@ pub fn init_seccomp(scmp: &LinuxSeccomp) -> Result<()> {
mod tests { mod tests {
use super::*; use super::*;
use crate::skip_if_not_root; use crate::skip_if_not_root;
use libc::{dup2, process_vm_readv, EPERM}; use libc::{dup3, process_vm_readv, EPERM, O_CLOEXEC};
use std::io::Error; use std::io::Error;
use std::ptr::null; use std::ptr::null;
@ -135,7 +135,7 @@ mod tests {
"syscalls": [ "syscalls": [
{ {
"names": [ "names": [
"dup2" "dup3"
], ],
"action": "SCMP_ACT_ERRNO" "action": "SCMP_ACT_ERRNO"
}, },
@ -212,7 +212,7 @@ mod tests {
init_seccomp(&scmp).unwrap(); init_seccomp(&scmp).unwrap();
// Basic syscall with simple rule // Basic syscall with simple rule
syscall_assert!(unsafe { dup2(0, 1) }, -EPERM); syscall_assert!(unsafe { dup3(0, 1, O_CLOEXEC) }, -EPERM);
// Syscall with permitted arguments // Syscall with permitted arguments
syscall_assert!(unsafe { process_vm_readv(1, null(), 0, null(), 0, 0) }, 0); syscall_assert!(unsafe { process_vm_readv(1, null(), 0, null(), 0, 0) }, 0);