Linux kernel source tree
Go to file
Xin Xiong 88ee1af064 drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
commit a34a0a632d upstream

drm_dp_mst_allocate_vcpi() invokes
drm_dp_mst_topology_get_port_validated(), which increases the refcount
of the "port".

These reference counting issues take place in two exception handling
paths separately. Either when “slots” is less than 0 or when
drm_dp_init_vcpi() returns a negative value, the function forgets to
reduce the refcnt increased drm_dp_mst_topology_get_port_validated(),
which results in a refcount leak.

Fix these issues by pulling up the error handling when "slots" is less
than 0, and calling drm_dp_mst_topology_put_port() before termination
when drm_dp_init_vcpi() returns a negative value.

Fixes: 1e797f556c ("drm/dp: Split drm_dp_mst_allocate_vcpi")
Cc: <stable@vger.kernel.org> # v4.12+
Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
Signed-off-by: Xin Xiong <xiongx18@fudan.edu.cn>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200719154545.GA41231@xin-virtual-machine
[sudip: use old functions before rename]
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-12-30 11:25:43 +01:00
arch x86/apic/vector: Fix ordering in vector assignment 2020-12-30 11:25:40 +01:00
block blk-cgroup: Pre-allocate tree node on blkg_conf_prep 2020-11-10 12:35:59 +01:00
certs
crypto crypto: algif_skcipher - EBUSY on aio should be an error 2020-10-29 09:55:01 +01:00
Documentation USB: UAS: introduce a quirk to set no_write_same 2020-12-30 11:25:42 +01:00
drivers drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi 2020-12-30 11:25:43 +01:00
firmware
fs gfs2: check for empty rgrp tree in gfs2_ri_update 2020-12-11 13:25:04 +01:00
include USB: UAS: introduce a quirk to set no_write_same 2020-12-30 11:25:42 +01:00
init printk: reduce LOG_BUF_SHIFT range for H8300 2020-11-05 11:08:41 +01:00
ipc ipc/util.c: sysvipc_find_ipc() incorrectly updates position index 2020-05-20 08:18:40 +02:00
kernel tracing: Fix userstacktrace option for instances 2020-12-11 13:25:03 +01:00
lib random32: make prandom_u32() output unpredictable 2020-11-18 19:18:52 +01:00
LICENSES
mm mm/swapfile: do not sleep with a spin lock held 2020-12-11 13:25:02 +01:00
net net: bridge: vlan: fix error return code in __vlan_add() 2020-12-30 11:25:41 +01:00
samples misc: vop: add round_up(x,4) for vring_size to avoid kernel panic 2020-10-30 10:38:29 +01:00
scripts scripts/setlocalversion: make git describe output more reliable 2020-11-05 11:08:31 +01:00
security selinux: Fix error return code in sel_ib_pkey_sid_slow() 2020-11-18 19:18:50 +01:00
sound ALSA: pcm: oss: Fix potential out-of-bounds shift 2020-12-30 11:25:42 +01:00
tools ktest.pl: If size of log is too big to email, email error message 2020-12-30 11:25:41 +01:00
usr
virt KVM: arm64: vgic-v3: Drop the reporting of GICR_TYPER.Last for userspace 2020-12-02 08:48:07 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Documentation/llvm: add documentation on building w/ Clang/LLVM 2020-09-26 18:01:31 +02:00
Makefile Kbuild: do not emit debug info for assembly with LLVM_IAS=1 2020-12-30 11:25:37 +01:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.