No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tyrel Datwyler 51a2b19b55 PCI: rpadlpar: Fix potential drc_name corruption in store functions
commit cc7a0bb058b85ea03db87169c60c7cfdd5d34678 upstream.

Both add_slot_store() and remove_slot_store() try to fix up the
drc_name copied from the store buffer by placing a NUL terminator at
nbyte + 1 or in place of a '\n' if present. However, the static buffer
that we copy the drc_name data into is not zeroed and can contain
anything past the n-th byte.

This is problematic if a '\n' byte appears in that buffer after nbytes
and the string copied into the store buffer was not NUL terminated to
start with as the strchr() search for a '\n' byte will mark this
incorrectly as the end of the drc_name string resulting in a drc_name
string that contains garbage data after the n-th byte.

Additionally it will cause us to overwrite that '\n' byte on the stack
with NUL, potentially corrupting data on the stack.

The following debugging shows an example of the drmgr utility writing
"PHB 4543" to the add_slot sysfs attribute, but add_slot_store()
logging a corrupted string value.

  drmgr: drmgr: -c phb -a -s PHB 4543 -d 1
  add_slot_store: drc_name = PHB 4543°|<82>!, rc = -19

Fix this by using strscpy() instead of memcpy() to ensure the string
is NUL terminated when copied into the static drc_name buffer.
Further, since the string is now NUL terminated the code only needs to
change '\n' to '\0' when present.

Cc: stable@vger.kernel.org
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
[mpe: Reformat change log and add mention of possible stack corruption]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210315214821.452959-1-tyreld@linux.ibm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-24 11:26:43 +01:00
arch riscv: Correct SPARSEMEM configuration 2021-03-24 11:26:39 +01:00
block blk-settings: align max_sectors on "logical_block_size" boundary 2021-03-04 10:26:40 +01:00
certs certs: Fix blacklist flag type confusion 2021-03-04 10:26:29 +01:00
crypto crypto: x86 - Regularize glue function prototypes 2021-03-20 10:39:47 +01:00
Documentation KVM: arm64: Reject VM creation when the default IPA size is unsupported 2021-03-17 17:03:57 +01:00
drivers PCI: rpadlpar: Fix potential drc_name corruption in store functions 2021-03-24 11:26:43 +01:00
fs nfsd: Don't keep looking up unhashed files in the nfsd file cache 2021-03-24 11:26:38 +01:00
include USB: replace hardcode maximum usb string length by definition 2021-03-24 11:26:41 +01:00
init fgraph: Initialize tracing_graph_pause at task creation 2021-02-10 09:25:29 +01:00
ipc
kernel bpf: Add sanity check for upper ptr_limit 2021-03-20 10:39:46 +01:00
lib PCI: Fix pci_register_io_range() memory leak 2021-03-17 17:03:44 +01:00
LICENSES
mm Revert "mm, slub: consider rest of partial list if acquire_slab() fails" 2021-03-17 17:03:34 +01:00
net net/qrtr: fix __netdev_alloc_skb call 2021-03-24 11:26:39 +01:00
samples samples, bpf: Add missing munmap in xdpsock 2021-03-17 17:03:33 +01:00
scripts ftrace: Have recordmcount use w8 to read relp->r_info in arm64_is_fake_mcount 2021-03-09 11:09:39 +01:00
security Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file capabilities") 2021-03-17 17:03:47 +01:00
sound ASoC: simple-card-utils: Do not handle device clock 2021-03-24 11:26:37 +01:00
tools bpf, selftests: Fix up some test_verifier cases for unprivileged 2021-03-20 10:39:46 +01:00
usr
virt KVM: arm64: Ensure I-cache isolation between vcpus of a same VM 2021-03-17 17:03:57 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile kbuild: Fix <linux/version.h> for empty SUBLEVEL or PATCHLEVEL again 2021-03-24 11:26:39 +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.

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.