Christian Brauner
68defbc4c8
UPSTREAM: signal: use fdget() since we don't allow O_PATH
...
As stated in the original commit for pidfd_send_signal() we don't allow
to signal processes through O_PATH file descriptors since it is
semantically equivalent to a write on the pidfd.
We already correctly error out right now and return EBADF if an O_PATH
fd is passed. This is because we use file->f_op to detect whether a
pidfd is passed and O_PATH fds have their file->f_op set to empty_fops
in do_dentry_open() and thus fail the test.
Thus, there is no regression. It's just semantically correct to use
fdget() and return an error right from there instead of taking a
reference and returning an error later.
Signed-off-by: Christian Brauner <christian@brauner.io>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jann Horn <jann@thejh.net>
Cc: David Howells <dhowells@redhat.com>
Cc: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
Cc: Andy Lutomirsky <luto@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Aleksa Sarai <cyphar@cyphar.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 738a7832d21e3d911fcddab98ce260b79010b461)
Bug: 135608568
Test: test program using syscall(__NR_pidfd_send_signal,..) to send SIGKILL
Change-Id: Id52eaadf9da371fb2d9caae4df49627760de7229
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2019-09-03 13:44:25 -07:00
..
bpf
This is the 4.9.190 stable release
2019-08-25 14:53:01 +02:00
configs
ANDROID: add script to fetch android kernel config fragments
2017-10-03 17:19:26 +00:00
debug
UPSTREAM: sched: loadavg: consolidate LOAD_INT, LOAD_FRAC, CALC_LOAD
2019-03-22 14:08:50 -07:00
events
This is the 4.9.190 stable release
2019-08-25 14:53:01 +02:00
gcov
gcov: support GCC 7.1
2017-09-02 07:07:53 +02:00
irq
genirq: Prevent use-after-free and work list corruption
2019-05-10 17:52:10 +02:00
livepatch
livepatch/module: make TAINT_LIVEPATCH module-specific
2016-08-26 14:42:08 +02:00
locking
locking/lockdep: Hide unused 'class' variable
2019-08-04 09:33:42 +02:00
power
This is the 4.9.181 stable release
2019-06-11 14:39:40 +02:00
printk
This is the 4.9.137 stable release
2018-11-23 11:11:43 +01:00
rcu
rcuperf: Fix cleanup path for invalid perf_type strings
2019-05-31 06:48:30 -07:00
sched
This is the 4.9.187 stable release
2019-08-04 09:50:32 +02:00
time
This is the 4.9.187 stable release
2019-08-04 09:50:32 +02:00
trace
This is the 4.9.188 stable release
2019-08-06 18:45:16 +02:00
.gitignore
acct.c
kernel/acct.c: fix the acct->needcheck check in check_free_space()
2018-01-10 09:29:51 +01:00
async.c
kernel/async.c: revert "async: simplify lowest_in_progress()"
2018-02-17 13:21:18 +01:00
audit.c
audit: return on memory error to avoid null pointer dereference
2018-05-30 07:50:49 +02:00
audit.h
Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit
2016-07-29 17:54:17 -07:00
audit_fsnotify.c
audit_tree.c
audit_watch.c
audit: fix use-after-free in audit_add_watch
2018-09-26 08:36:37 +02:00
auditfilter.c
audit: fix a memory leak bug
2019-05-31 06:48:20 -07:00
auditsc.c
audit: allow not equal op for audit by executable
2018-08-03 07:55:25 +02:00
backtracetest.c
bounds.c
kbuild: fix kernel/bounds.c 'W=1' warning
2018-11-13 11:16:57 -08:00
capability.c
ptrace: Capture the ptracer's creds not PT_PTRACE_CAP
2017-01-06 10:40:13 +01:00
cfi.c
ANDROID: cfi: Remove unused variable in ptr_to_check_fn
2019-03-06 18:27:16 +00:00
cgroup.c
FROMLIST: psi: introduce psi monitor
2019-03-23 00:29:15 +00:00
cgroup_freezer.c
cgroup_pids.c
cgroup/pids: remove spurious suspicious RCU usage warning
2017-03-26 13:05:58 +02:00
compat.c
configs.c
context_tracking.c
cpu.c
This is the 4.9.185 stable release
2019-07-10 12:32:12 +02:00
cpu_pm.c
cpuset.c
This is the 4.9.55 stable release
2017-10-12 22:31:24 +02:00
crash_dump.c
cred.c
access: avoid the RCU grace period for the temporary subjective credentials
2019-08-04 09:33:43 +02:00
delayacct.c
BACKPORT: delayacct: track delays from thrashing cache pages
2019-03-22 14:08:39 -07:00
dma.c
elfcore.c
exec_domain.c
exit.c
This is the 4.9.155 stable release
2019-02-07 09:14:43 +01:00
extable.c
kernel/extable.c: mark core_kernel_text notrace
2017-07-21 07:42:21 +02:00
fork.c
This is the 4.9.187 stable release
2019-08-04 09:50:32 +02:00
freezer.c
freezer, oom: check TIF_MEMDIE on the correct task
2016-07-28 16:07:41 -07:00
futex.c
futex: Ensure that futex address is aligned in handle_futex_death()
2019-03-27 14:13:03 +09:00
futex_compat.c
groups.c
kernel: make groups_sort calling a responsibility group_info allocators
2018-01-10 09:29:52 +01:00
hung_task.c
kernel: hung_task.c: disable on suspend
2019-04-20 09:07:52 +02:00
irq_work.c
jump_label.c
jump_label: Invoke jump_label_test() via early_initcall()
2017-12-14 09:28:24 +01:00
kallsyms.c
kallsyms: strip the .cfi postfix from symbols with CONFIG_CFI_CLANG
2018-02-28 15:09:58 -08:00
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
This is the 4.9.117 stable release
2018-08-03 08:50:05 +02:00
kexec.c
kexec: allow architectures to override boot mapping
2016-08-02 19:35:27 -04:00
kexec_core.c
objtool, x86: Add several functions and files to the objtool whitelist
2018-06-05 10:28:57 +02:00
kexec_file.c
kexec: fix double-free when failing to relocate the purgatory
2016-09-01 17:52:01 -07:00
kexec_internal.h
kmod.c
kprobes.c
kprobes: Fix error check when reusing optimized probes
2019-04-27 09:34:45 +02:00
ksysfs.c
kexec: add a kexec_crash_loaded() function
2016-08-02 19:35:30 -04:00
kthread.c
kthread, tracing: Don't expose half-written comm when creating kthreads
2018-08-03 07:55:12 +02:00
latencytop.c
Makefile
This is the 4.9.183 stable release
2019-06-22 08:56:18 +02:00
membarrier.c
Fix: Disable sys_membarrier when nohz_full is enabled
2017-03-12 06:41:45 +01:00
memremap.c
mm, devm_memremap_pages: kill mapping "System RAM" support
2019-01-13 10:03:51 +01:00
module-internal.h
module.c
This is the 4.9.188 stable release
2019-08-06 18:45:16 +02:00
module_signing.c
notifier.c
nsproxy.c
padata.c
padata: use smp_mb in padata_reorder to avoid orphaned padata jobs
2019-08-04 09:33:28 +02:00
panic.c
UPSTREAM: bug: use %pB in BUG and stack protector failure
2019-03-28 21:13:06 -07:00
params.c
pid.c
pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid()
2018-04-13 19:47:53 +02:00
pid_namespace.c
signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig
2019-08-04 09:33:16 +02:00
profile.c
profile: Convert to hotplug state machine
2016-07-15 10:41:42 +02:00
ptrace.c
ptrace: Fix ->ptracer_cred handling for PTRACE_TRACEME
2019-07-10 09:55:45 +02:00
range.c
reboot.c
relay.c
kernel/relay.c: limit kmalloc size to KMALLOC_MAX_SIZE
2018-05-30 07:50:29 +02:00
resource.c
resource: fix integer overflow at reallocation
2018-04-24 09:34:09 +02:00
seccomp.c
seccomp: Move speculation migitation control to arch code
2018-05-22 16:58:02 +02:00
signal.c
UPSTREAM: signal: use fdget() since we don't allow O_PATH
2019-09-03 13:44:25 -07:00
smp.c
cpu/hotplug: Fix SMT supported evaluation
2018-08-15 18:14:53 +02:00
smpboot.c
kthread/smpboot: do not park in kthread_create_on_cpu()
2016-10-11 15:06:33 -07:00
smpboot.h
softirq.c
Mark HI and TASKLET softirq synchronous
2018-08-15 18:14:42 +02:00
stacktrace.c
stacktrace, lockdep: Fix address, newline ugliness
2017-02-14 15:25:42 -08:00
stop_machine.c
stop_machine: Use raw spinlocks
2018-08-03 07:55:24 +02:00
sys.c
This is the 4.9.183 stable release
2019-06-22 08:56:18 +02:00
sys_ni.c
BACKPORT: signal: add pidfd_send_signal() syscall
2019-09-03 13:43:55 -07:00
sysctl.c
This is the 4.9.183 stable release
2019-06-22 08:56:18 +02:00
sysctl_binary.c
task_work.c
task_work: use READ_ONCE/lockless_dereference, avoid pi_lock if !task_works
2016-08-02 19:35:02 -04:00
taskstats.c
taskstats: fix the length of cgroupstats_cmd_get_policy
2016-11-03 16:55:58 -04:00
test_kprobes.c
torture.c
torture: Convert torture_shutdown() to hrtimer
2016-08-22 10:01:49 -07:00
tracepoint.c
tracepoint: Do not warn on ENOMEM
2018-05-09 09:50:20 +02:00
tsacct.c
ucount.c
kernel/ucount.c: mark user_header with kmemleak_ignore()
2017-06-17 06:41:51 +02:00
uid16.c
kernel: make groups_sort calling a responsibility group_info allocators
2018-01-10 09:29:52 +01:00
up.c
smp: Add function to execute a function synchronously on a CPU
2016-09-05 13:52:39 +02:00
user-return-notifier.c
user.c
ANDROID: proc: Add /proc/uid directory
2018-04-03 11:15:30 -07:00
user_namespace.c
userns: move user access out of the mutex
2018-09-09 20:01:24 +02:00
utsname.c
Merge branch 'nsfs-ioctls' into HEAD
2016-09-22 20:00:36 -05:00
utsname_sysctl.c
sys: don't hold uts_sem while accessing userspace memory
2018-09-09 20:01:24 +02:00
watchdog.c
Revert "ANDROID: hardlockup: detect hard lockups without NMIs using secondary cpus"
2017-06-27 10:31:16 +02:00
watchdog_hld.c
kernel/watchdog: prevent false hardlockup on overloaded system
2017-06-17 06:41:57 +02:00
workqueue.c
UPSTREAM: psi: fix aggregation idle shut-off
2019-03-22 14:15:01 -07:00
workqueue_internal.h
UPSTREAM: psi: fix aggregation idle shut-off
2019-03-22 14:15:01 -07:00