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
Eric Biggers d32747bb68 fs/namespace.c: WARN if mnt_count has become negative
[ Upstream commit edf7ddbf1c5eb98b720b063b73e20e8a4a1ce673 ]

Missing calls to mntget() (or equivalently, too many calls to mntput())
are hard to detect because mntput() delays freeing mounts using
task_work_add(), then again using call_rcu().  As a result, mnt_count
can often be decremented to -1 without getting a KASAN use-after-free
report.  Such cases are still bugs though, and they point to real
use-after-frees being possible.

For an example of this, see the bug fixed by commit 1b0b9cc8d3
("vfs: fsmount: add missing mntget()"), discussed at
https://lkml.kernel.org/linux-fsdevel/20190605135401.GB30925@xxxxxxxxxxxxxxxxxxxxxxxxx/T/#u.
This bug *should* have been trivial to find.  But actually, it wasn't
found until syzkaller happened to use fchdir() to manipulate the
reference count just right for the bug to be noticeable.

Address this by making mntput_no_expire() issue a WARN if mnt_count has
become negative.

Suggested-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-01-06 14:48:40 +01:00
arch powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe() 2021-01-06 14:48:39 +01:00
block scsi: block: Fix a race in the runtime power management code 2021-01-06 14:48:37 +01:00
certs
crypto crypto: ecdh - avoid unaligned accesses in ecdh_set_secret() 2020-12-30 11:51:35 +01:00
Documentation x86/CPU/AMD: Save AMD NodeId as cpu_die_id 2020-12-30 11:51:47 +01:00
drivers i3c master: fix missing destroy_workqueue() on error in i3c_master_register 2021-01-06 14:48:40 +01:00
fs fs/namespace.c: WARN if mnt_count has become negative 2021-01-06 14:48:40 +01:00
include of: fix linker-section match-table corruption 2021-01-06 14:48:37 +01:00
init initramfs: fix clang build failure 2020-12-30 11:51:30 +01:00
ipc
kernel module: delay kobject uevent until after module init call 2021-01-06 14:48:40 +01:00
lib
LICENSES
mm
net net/sched: sch_taprio: reset child qdiscs before freeing them 2021-01-06 14:48:35 +01:00
samples
scripts kconfig: fix return value of do_error_if() 2020-12-30 11:51:29 +01:00
security ima: Don't modify file descriptor mode on the fly 2020-12-30 11:51:39 +01:00
sound ALSA: rawmidi: Access runtime->avail always in spinlock 2021-01-06 14:48:38 +01:00
tools tools headers UAPI: Sync linux/const.h with the kernel headers 2021-01-06 14:48:37 +01:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Linux 5.4.86 2020-12-30 11:51:48 +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.