Skip to content

Commit 068ff99

Browse files
committed
Add line numbers in exec_filter[] to make it easier to verify jumps.
1 parent c689478 commit 068ff99

1 file changed

Lines changed: 22 additions & 22 deletions

File tree

src/exec_ptrace.c

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,50 +1163,50 @@ set_exec_filter(void)
11631163
{
11641164
struct sock_filter exec_filter[] = {
11651165
/* Load architecture value (AUDIT_ARCH_*) into the accumulator. */
1166-
BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, arch)),
1166+
/*00*/ BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, arch)),
11671167
# ifdef SECCOMP_AUDIT_ARCH_COMPAT2
11681168
/* Match on the compat2 architecture or jump to the compat check. */
1169-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, SECCOMP_AUDIT_ARCH_COMPAT2, 0, 4),
1169+
/*01*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, SECCOMP_AUDIT_ARCH_COMPAT2, 0, 4),
11701170
/* Load syscall number into the accumulator. */
1171-
BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, nr)),
1171+
/*02*/ BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, nr)),
11721172
/* Jump to trace for compat2 execve(2)/execveat(2), else allow. */
1173-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT2_execve, 1, 0),
1174-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT2_execveat, 0, 14),
1173+
/*03*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT2_execve, 1, 0),
1174+
/*04*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT2_execveat, 0, 14),
11751175
/* Trace execve(2)/execveat(2) syscalls (w/ compat flag) */
1176-
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE | COMPAT_FLAG),
1176+
/*05*/ BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE | COMPAT_FLAG),
11771177
# endif /* SECCOMP_AUDIT_ARCH_COMPAT2 */
11781178
# ifdef SECCOMP_AUDIT_ARCH_COMPAT
11791179
/* Match on the compat architecture or jump to the native arch check. */
1180-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, SECCOMP_AUDIT_ARCH_COMPAT, 0, 4),
1180+
/*06*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, SECCOMP_AUDIT_ARCH_COMPAT, 0, 4),
11811181
/* Load syscall number into the accumulator. */
1182-
BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, nr)),
1182+
/*07*/ BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, nr)),
11831183
/* Jump to trace for compat execve(2)/execveat(2), else allow. */
1184-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT_execve, 1, 0),
1185-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT_execveat, 0, 9),
1184+
/*08*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT_execve, 1, 0),
1185+
/*09*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, COMPAT_execveat, 0, 9),
11861186
/* Trace execve(2)/execveat(2) syscalls (w/ compat flag) */
1187-
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE | COMPAT_FLAG),
1187+
/*10*/ BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE | COMPAT_FLAG),
11881188
# endif /* SECCOMP_AUDIT_ARCH_COMPAT */
11891189
/* Kill the process unless the (native) architecture matches. */
1190-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, SECCOMP_AUDIT_ARCH, 1, 0),
1191-
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS),
1190+
/*11*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, SECCOMP_AUDIT_ARCH, 1, 0),
1191+
/*12*/ BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS),
11921192
/* Load syscall number into the accumulator. */
1193-
BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, nr)),
1193+
/*13*/ BPF_STMT(BPF_LD | BPF_W | BPF_ABS, offsetof(struct seccomp_data, nr)),
11941194
/* Jump to trace for execve(2)/execveat(2), else allow. */
11951195
# ifdef X32_execve
1196-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, X32_execve, 3, 0),
1197-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, X32_execveat, 2, 0),
1196+
/*14*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, X32_execve, 3, 0),
1197+
/*15*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, X32_execveat, 2, 0),
11981198
# else
11991199
/* No x32 support, check native system call numbers. */
1200-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execve, 3, 0),
1201-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execveat, 2, 3),
1200+
/*14*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execve, 3, 0),
1201+
/*15*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execveat, 2, 3),
12021202
# endif /* X32_execve */
12031203
/* If no x32 support, these two instructions are never reached. */
1204-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execve, 1, 0),
1205-
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execveat, 0, 1),
1204+
/*16*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execve, 1, 0),
1205+
/*17*/ BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_execveat, 0, 1),
12061206
/* Trace execve(2)/execveat(2) syscalls */
1207-
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE),
1207+
/*18*/ BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_TRACE),
12081208
/* Allow non-matching syscalls */
1209-
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW)
1209+
/*19*/ BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW)
12101210
};
12111211
const struct sock_fprog exec_fprog = {
12121212
nitems(exec_filter),

0 commit comments

Comments
 (0)