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
Russell King ae6d80f62c netfilter: ipset: fix unaligned atomic access
[ Upstream commit 715028460082d07a7ec6fcd87b14b46784346a72 ]

When using ip_set with counters and comment, traffic causes the kernel
to panic on 32-bit ARM:

Alignment trap: not handling instruction e1b82f9f at [<bf01b0dc>]
Unhandled fault: alignment exception (0x221) at 0xea08133c
PC is at ip_set_match_extensions+0xe0/0x224 [ip_set]

The problem occurs when we try to update the 64-bit counters - the
faulting address above is not 64-bit aligned.  The problem occurs
due to the way elements are allocated, for example:

	set->dsize = ip_set_elem_len(set, tb, 0, 0);
	map = ip_set_alloc(sizeof(*map) + elements * set->dsize);

If the element has a requirement for a member to be 64-bit aligned,
and set->dsize is not a multiple of 8, but is a multiple of four,
then every odd numbered elements will be misaligned - and hitting
an atomic64_add() on that element will cause the kernel to panic.

ip_set_elem_len() must return a size that is rounded to the maximum
alignment of any extension field stored in the element.  This change
ensures that is the case.

Fixes: 95ad1f4a93 ("netfilter: ipset: Fix extension alignment")
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Acked-by: Jozsef Kadlecsik <kadlec@netfilter.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-30 15:37:01 -04:00
arch ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram() 2020-06-30 15:37:00 -04:00
block block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed 2020-06-30 15:36:43 -04:00
certs
crypto crypto: algboss - don't wait during notifier callback 2020-06-24 17:50:51 +02:00
Documentation dt-bindings: display: mediatek: control dpi pins mode to avoid leakage 2020-06-22 09:30:58 +02:00
drivers nvme: don't protect ns mutation with ns->head->lock 2020-06-30 15:37:00 -04:00
fs cifs/smb3: Fix data inconsistent when zero file range 2020-06-30 15:36:51 -04:00
include net: qed: fix left elements count calculation 2020-06-30 15:36:58 -04:00
init x86: Fix early boot crash on gcc-10, third try 2020-05-20 08:20:34 +02:00
ipc ipc/util.c: sysvipc_find_ipc() incorrectly updates position index 2020-05-20 08:20:16 +02:00
kernel bpf: Don't return EINVAL from {get,set}sockopt when optlen > PAGE_SIZE 2020-06-30 15:36:56 -04:00
lib lib/zlib: remove outdated and incorrect pre-increment optimization 2020-06-24 17:50:39 +02:00
LICENSES
mm mm: call cond_resched() from deferred_init_memmap() 2020-06-22 09:31:14 +02:00
net netfilter: ipset: fix unaligned atomic access 2020-06-30 15:37:01 -04:00
samples bpf, xdp, samples: Fix null pointer dereference in *_user code 2020-06-30 15:36:55 -04:00
scripts scripts: headers_install: Exit with error on config leak 2020-06-24 17:50:33 +02:00
security selinux: fix double free 2020-06-24 17:50:48 +02:00
sound ASoC: rockchip: Fix a reference count leak. 2020-06-30 15:36:57 -04:00
tools selftests/net: report etf errors correctly 2020-06-30 15:36:58 -04:00
usr
virt KVM: arm64: Save the host's PtrAuth keys in non-preemptible context 2020-06-17 16:40:38 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Linux 5.4.49 2020-06-24 17:50:53 +02: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.