After the previous changes 'sd' is always NULL.
Unified · Split
| @@ -215,7 +215,7 @@ static int do_seccomp(struct pt_regs *regs) · 214 unmodified lines | ||
| 215 | 215 | * have already loaded -ENOSYS into r3, or seccomp has put |
| 216 | 216 | * something else in r3 (via SECCOMP_RET_ERRNO/TRACE). |
| 217 | 217 | */ |
| 218 | − if (__secure_computing(NULL)) | |
| 218 | + if (__secure_computing()) | |
| 219 | 219 | return -1; |
| 220 | 220 | |
| 221 | 221 | /* |
| @@ -22,13 +22,13 @@ · 21 unmodified lines | ||
| 22 | 22 | #include <linux/atomic.h> |
| 23 | 23 | #include <asm/seccomp.h> |
| 24 | 24 | |
| 25 | −extern int __secure_computing(const struct seccomp_data *sd); | |
| 25 | +extern int __secure_computing(void); | |
| 26 | 26 | |
| 27 | 27 | #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER |
| 28 | 28 | static inline int secure_computing(void) |
| 29 | 29 | { |
| 30 | 30 | if (unlikely(test_syscall_work(SECCOMP))) |
| 31 | − return __secure_computing(NULL); | |
| 31 | + return __secure_computing(); | |
| 32 | 32 | return 0; |
| 33 | 33 | } |
| 34 | 34 | #else |
| @@ -54,7 +54,7 @@ static inline int secure_computing(void) { return 0; } · 19 unmodified lines | ||
| 54 | 54 | #else |
| 55 | 55 | static inline void secure_computing_strict(int this_syscall) { return; } |
| 56 | 56 | #endif |
| 57 | −static inline int __secure_computing(const struct seccomp_data *sd) { return 0; } | |
| 57 | +static inline int __secure_computing(void) { return 0; } | |
| 58 | 58 | |
| 59 | 59 | static inline long prctl_get_seccomp(void) |
| 60 | 60 | { |
| @@ -49,7 +49,7 @@ long syscall_trace_enter(struct pt_regs *regs, long syscall, · 48 unmodified lines | ||
| 49 | 49 | |
| 50 | 50 | /* Do seccomp after ptrace, to catch any tracer changes. */ |
| 51 | 51 | if (work & SYSCALL_WORK_SECCOMP) { |
| 52 | − ret = __secure_computing(NULL); | |
| 52 | + ret = __secure_computing(); | |
| 53 | 53 | if (ret == -1L) |
| 54 | 54 | return ret; |
| 55 | 55 | } |
| @@ -1072,10 +1072,9 @@ void secure_computing_strict(int this_syscall) · 1071 unmodified lines | ||
| 1072 | 1072 | else |
| 1073 | 1073 | BUG(); |
| 1074 | 1074 | } |
| 1075 | −int __secure_computing(const struct seccomp_data *sd) | |
| 1075 | +int __secure_computing(void) | |
| 1076 | 1076 | { |
| 1077 | − int this_syscall = sd ? sd->nr : | |
| 1078 | − syscall_get_nr(current, current_pt_regs()); | |
| 1077 | + int this_syscall = syscall_get_nr(current, current_pt_regs()); | |
| 1079 | 1078 | |
| 1080 | 1079 | secure_computing_strict(this_syscall); |
| 1081 | 1080 | return 0; |
| @@ -1365,7 +1364,7 @@ static int __seccomp_filter(int this_syscall, const struct seccomp_data *sd, · 283 unmodified lines | ||
| 1365 | 1364 | } |
| 1366 | 1365 | #endif |
| 1367 | 1366 | |
| 1368 | −int __secure_computing(const struct seccomp_data *sd) | |
| 1367 | +int __secure_computing(void) | |
| 1369 | 1368 | { |
| 1370 | 1369 | int mode = current->seccomp.mode; |
| 1371 | 1370 | int this_syscall; |
| @@ -1374,15 +1373,14 @@ int __secure_computing(const struct seccomp_data *sd) · 2 unmodified lines | ||
| 1374 | 1373 | unlikely(current->ptrace & PT_SUSPEND_SECCOMP)) |
| 1375 | 1374 | return 0; |
| 1376 | 1375 | |
| 1377 | − this_syscall = sd ? sd->nr : | |
| 1378 | − syscall_get_nr(current, current_pt_regs()); | |
| 1376 | + this_syscall = syscall_get_nr(current, current_pt_regs()); | |
| 1379 | 1377 | |
| 1380 | 1378 | switch (mode) { |
| 1381 | 1379 | case SECCOMP_MODE_STRICT: |
| 1382 | 1380 | __secure_computing_strict(this_syscall); /* may call do_exit */ |
| 1383 | 1381 | return 0; |
| 1384 | 1382 | case SECCOMP_MODE_FILTER: |
| 1385 | − return __seccomp_filter(this_syscall, sd, false); | |
| 1383 | + return __seccomp_filter(this_syscall, NULL, false); | |
| 1386 | 1384 | /* Surviving SECCOMP_RET_KILL_* must be proactively impossible. */ |
| 1387 | 1385 | case SECCOMP_MODE_DEAD: |
| 1388 | 1386 | WARN_ON_ONCE(1); |