John Fastabend
547b3aa451
bpf: sockmap, error path can not release psock in multi-map case
...
The current code, in the error path of sock_hash_ctx_update_elem,
checks if the sock has a psock in the user data and if so decrements
the reference count of the psock. However, if the error happens early
in the error path we may have never incremented the psock reference
count and if the psock exists because the sock is in another map then
we may inadvertently decrement the reference count.
Fix this by making the error path only call smap_release_sock if the
error happens after the increment.
Reported-by: syzbot+d464d2c20c717ef5a6a8@syzkaller.appspotmail.com
Fixes: 8111038444 ("bpf: sockmap, add hash map support")
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2018-07-07 15:16:58 -07:00
..
bpf
bpf: sockmap, error path can not release psock in multi-map case
2018-07-07 15:16:58 -07:00
cgroup
docs: Fix some broken references
2018-06-15 18:10:01 -03:00
configs
kconfig: tinyconfig: remove stale stack protector fixups
2018-06-15 07:15:28 +09:00
debug
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
dma
swiotlb: export swiotlb_dma_ops
2018-06-28 14:00:40 +02:00
events
perf/core: Move inline keyword at the beginning of declaration
2018-06-27 09:55:58 +02:00
gcov
gcov: remove CONFIG_GCOV_FORMAT_AUTODETECT
2018-06-08 18:56:02 +09:00
irq
genirq/debugfs: Add missing IRQCHIP_SUPPORTS_LEVEL_MSI debug
2018-06-22 14:22:00 +02:00
livepatch
livepatch: Allow to call a custom callback when freeing shadow variables
2018-04-17 13:42:48 +02:00
locking
Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-06-24 19:36:16 +08:00
power
fix a series of Documentation/ broken file name references
2018-06-15 18:10:01 -03:00
printk
Printk changes for 4.18
2018-06-06 16:04:55 -07:00
rcu
treewide: Use array_size() in vmalloc()
2018-06-12 16:19:22 -07:00
sched
sched/core / kcov: avoid kcov_area during task switch
2018-06-15 07:55:24 +09:00
time
time: Make sure jiffies_to_msecs() preserves non-zero time periods
2018-06-22 17:48:36 +02:00
trace
tracing: Use swap macro in update_max_tr
2018-06-21 15:12:43 -04:00
.gitignore
acct.c
async.c
kernel/async.c: revert "async: simplify lowest_in_progress()"
2018-02-06 18:32:44 -08:00
audit.c
audit: use inline function to get audit context
2018-05-14 17:24:18 -04:00
audit.h
audit: track the owner of the command mutex ourselves
2018-02-23 11:22:22 -05:00
audit_fsnotify.c
fsnotify: add fsnotify_add_inode_mark() wrappers
2018-05-18 14:58:22 +02:00
audit_tree.c
fsnotify: add fsnotify_add_inode_mark() wrappers
2018-05-18 14:58:22 +02:00
audit_watch.c
\n
2018-06-17 05:06:18 +09:00
auditfilter.c
audit: use existing session info function
2018-05-18 15:47:54 -04:00
auditsc.c
audit: Fix wrong task in comparison of session ID
2018-05-21 14:27:43 -04:00
backtracetest.c
bounds.c
capability.c
compat.c
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-06-04 20:27:54 -07:00
configs.c
context_tracking.c
cpu.c
cpu/hotplug: Fix unused function warning
2018-03-15 20:34:40 +01:00
cpu_pm.c
crash_core.c
mm: split page_type out from _mapcount
2018-06-07 17:34:37 -07:00
crash_dump.c
cred.c
delayacct.c
delayacct: Use raw_spinlocks
2018-04-27 14:34:51 +02:00
dma.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
elfcore.c
exec_domain.c
proc: introduce proc_create_single{,_data}
2018-05-16 07:23:35 +02:00
exit.c
kernel: use kernel_wait4() instead of sys_wait4()
2018-04-02 20:14:51 +02:00
extable.c
extable: Make init_kernel_text() global
2018-02-21 16:54:06 +01:00
fail_function.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
fork.c
mm: check for SIGKILL inside dup_mmap() loop
2018-06-15 07:55:24 +09:00
freezer.c
futex.c
pids: introduce find_get_task_by_vpid() helper
2018-02-06 18:32:46 -08:00
futex_compat.c
groups.c
hung_task.c
kernel/hung_task.c: show all hung tasks before panic
2018-06-07 17:34:39 -07:00
iomem.c
memremap: split devm_memremap_pages() and memremap() infrastructure
2018-05-15 23:08:33 -07:00
irq_work.c
jump_label.c
jump_label: Disable jump labels in __exit code
2018-03-20 08:57:17 +01:00
kallsyms.c
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
sched/core / kcov: avoid kcov_area during task switch
2018-06-15 07:55:24 +09:00
kexec.c
kexec: call do_kexec_load() in compat syscall directly
2018-04-02 20:15:01 +02:00
kexec_core.c
kexec: yield to scheduler when loading kimage segments
2018-06-15 07:55:24 +09:00
kexec_file.c
treewide: Use array_size() in vzalloc()
2018-06-12 16:19:22 -07:00
kexec_internal.h
kmod.c
kprobes.c
kprobes: Fix random address output of blacklist file
2018-04-25 10:27:56 -04:00
ksysfs.c
kthread.c
kthread: Allow kthread_park() on a parked kthread
2018-05-25 08:03:51 +02:00
latencytop.c
Makefile
dma-mapping: move all DMA mapping code to kernel/dma
2018-06-14 08:50:37 +02:00
memremap.c
mm: introduce MEMORY_DEVICE_FS_DAX and CONFIG_DEV_PAGEMAP_OPS
2018-05-22 06:59:39 -07:00
module-internal.h
module.c
Modules updates for v4.18
2018-06-16 07:36:39 +09:00
module_signing.c
notifier.c
nsproxy.c
padata.c
panic.c
Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables
2018-06-14 12:21:18 +09:00
params.c
kernel/params.c: downgrade warning for unsafe parameters
2018-04-11 10:28:37 -07:00
pid.c
xarray: add the xa_lock to the radix_tree_root
2018-04-11 10:28:39 -07:00
pid_namespace.c
Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2018-04-03 19:15:32 -07:00
profile.c
ptrace.c
pids: introduce find_get_task_by_vpid() helper
2018-02-06 18:32:46 -08:00
range.c
reboot.c
relay.c
kernel/relay.c: change return type to vm_fault_t
2018-06-15 07:55:24 +09:00
resource.c
libnvdimm for 4.18
2018-06-08 17:21:52 -07:00
rseq.c
rseq: Avoid infinite recursion when delivering SIGSEGV
2018-06-22 19:04:22 +02:00
seccomp.c
audit/stable-4.18 PR 20180605
2018-06-06 16:34:00 -07:00
signal.c
signal: Remove no longer required irqsave/restore
2018-06-10 06:14:01 +02:00
smp.c
smpboot.c
smpboot.h
softirq.c
softirq: Reorder trace_softirqs_on to prevent lockdep splat
2018-06-21 15:12:43 -04:00
stacktrace.c
stop_machine.c
Linux 4.17-rc5
2018-05-15 08:10:50 +02:00
sys.c
mm: introduce arg_lock to protect arg_start|end and env_start|end in mm_struct
2018-06-07 17:34:34 -07:00
sys_ni.c
Merge branch 'core-rseq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-06-10 10:17:09 -07:00
sysctl.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
sysctl_binary.c
staging: irda: remove remaining remants of irda code removal
2018-04-16 11:26:49 +02:00
task_work.c
taskstats.c
pids: introduce find_get_task_by_vpid() helper
2018-02-06 18:32:46 -08:00
test_kprobes.c
torture.c
rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
2018-05-15 10:27:29 -07:00
tracepoint.c
tracepoints: Fix the descriptions of tracepoint_probe_register{_prio}
2018-05-28 12:49:51 -04:00
tsacct.c
ucount.c
headers: untangle kmemleak.h from mm.h
2018-04-05 21:36:27 -07:00
uid16.c
fs: add do_fchownat(), ksys_fchown() helpers and ksys_{,l}chown() wrappers
2018-04-02 20:15:59 +02:00
uid16.h
kernel: provide ksys_*() wrappers for syscalls called by kernel/uid16.c
2018-04-02 20:15:30 +02:00
umh.c
umh: fix race condition
2018-06-07 16:56:28 -04:00
up.c
user-return-notifier.c
user.c
efivarfs: Limit the rate for non-root to read files
2018-02-22 10:21:02 -08:00
user_namespace.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
utsname.c
uts: create "struct uts_namespace" from kmem_cache
2018-04-11 10:28:35 -07:00
utsname_sysctl.c
watchdog.c
watchdog_hld.c
workqueue.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
workqueue_internal.h
workqueue: Set worker->desc to workqueue name by default
2018-05-18 08:47:13 -07:00