subproc: print more data on sigsys
authorRobert Swiecki <robert@swiecki.net>
Wed, 5 Dec 2018 09:10:21 +0000 (10:10 +0100)
committerRobert Swiecki <robert@swiecki.net>
Wed, 5 Dec 2018 09:10:21 +0000 (10:10 +0100)
subproc.cc

index f10a5e4..05c1ee4 100644 (file)
@@ -254,8 +254,8 @@ static void seccompViolation(nsjconf_t* nsjconf, siginfo_t* si) {
 
        const pids_t* p = getPidElem(nsjconf, si->si_pid);
        if (p == NULL) {
-               LOG_W("PID:%d SiSyscall: %d, SiCode: %d, SiErrno: %d", (int)si->si_pid,
-                   si->si_syscall, si->si_code, si->si_errno);
+               LOG_W("PID:%d SiSyscall: %d, SiCode: %d, SiErrno: %d, SiSigno: %d", (int)si->si_pid,
+                   si->si_syscall, si->si_code, si->si_errno, si->si_signo);
                LOG_E("Couldn't find pid element in the subproc list for PID: %d", (int)si->si_pid);
                return;
        }
@@ -263,8 +263,8 @@ static void seccompViolation(nsjconf_t* nsjconf, siginfo_t* si) {
        char buf[4096];
        ssize_t rdsize = util::readFromFd(p->pid_syscall_fd, buf, sizeof(buf) - 1);
        if (rdsize < 1) {
-               LOG_W("PID: %d, SiSyscall: %d, SiCode: %d, SiErrno: %d", (int)si->si_pid,
-                   si->si_syscall, si->si_code, si->si_errno);
+               LOG_W("PID: %d, SiSyscall: %d, SiCode: %d, SiErrno: %d, SiSigno: %d",
+                   (int)si->si_pid, si->si_syscall, si->si_code, si->si_errno, si->si_signo);
                return;
        }
        buf[rdsize - 1] = '\0';
@@ -280,8 +280,11 @@ static void seccompViolation(nsjconf_t* nsjconf, siginfo_t* si) {
                    (int)si->si_pid, sc, arg1, arg2, arg3, arg4, arg5, arg6, sp, pc, si->si_syscall,
                    si->si_errno);
        } else if (ret == 3) {
-               LOG_W("PID: %d, SiSyscall: %d, SiCode: %d, SiErrno: %d, SP: %#tx, PC: %#tx",
-                   (int)si->si_pid, si->si_syscall, si->si_code, si->si_errno, arg1, arg2);
+               LOG_W(
+                   "PID: %d, SiSyscall: %d, SiCode: %d, SiErrno: %d, SiSigno: %d, SP: %#tx, PC: "
+                   "%#tx",
+                   (int)si->si_pid, si->si_syscall, si->si_code, si->si_errno, si->si_signo, arg1,
+                   arg2);
        } else {
                LOG_W("PID: %d, SiSyscall: %d, SiCode: %d, SiErrno: %d, Syscall string '%s'",
                    (int)si->si_pid, si->si_syscall, si->si_code, si->si_errno, buf);