Go to file
Georg Ottinger e880763484 ext2: fix datatype of block number in ext2_xattr_set2()
I run a small server that uses external hard drives for backups. The
backup software I use uses ext2 filesystems with 4KiB block size and
the server is running SELinux and therefore relies on xattr. I recently
upgraded the hard drives from 4TB to 12TB models. I noticed that after
transferring some TBs I got a filesystem error "Freeing blocks not in
datazone - block = 18446744071529317386, count = 1" and the backup
process stopped. Trying to fix the fs with e2fsck resulted in a
completely corrupted fs. The error probably came from ext2_free_blocks(),
and because of the large number 18e19 this problem immediately looked
like some kind of integer overflow. Whereas the 4TB fs was about 1e9
blocks, the new 12TB is about 3e9 blocks. So, searching the ext2 code,
I came across the line in fs/ext2/xattr.c:745 where ext2_new_block()
is called and the resulting block number is stored in the variable block
as an int datatype. If a block with a block number greater than
INT32_MAX is returned, this variable overflows and the call to
sb_getblk() at line fs/ext2/xattr.c:750 fails, then the call to
ext2_free_blocks() produces the error.

Signed-off-by: Georg Ottinger <g.ottinger@gmx.at>
Signed-off-by: Jan Kara <jack@suse.cz>
Message-Id: <20230815100340.22121-1-g.ottinger@gmx.at>
2023-08-16 16:09:45 +02:00
Documentation Biggest news is not a patch this time 2023-07-02 10:22:38 -07:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
arch parisc architecture fixes and updates for kernel v6.5-rc1: 2023-07-02 10:02:35 -07:00
block SCSI misc on 20230629 2023-06-30 11:57:07 -07:00
certs KEYS: Add missing function documentation 2023-04-24 16:15:52 +03:00
crypto This update includes the following changes: 2023-06-30 21:27:13 -07:00
drivers Biggest news is not a patch this time 2023-07-02 10:22:38 -07:00
fs ext2: fix datatype of block number in ext2_xattr_set2() 2023-08-16 16:09:45 +02:00
include Biggest news is not a patch this time 2023-07-02 10:22:38 -07:00
init Kbuild updates for v6.5 2023-07-01 09:24:31 -07:00
io_uring \n 2023-06-29 13:31:44 -07:00
ipc Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
kernel Kbuild updates for v6.5 2023-07-01 09:24:31 -07:00
lib This update includes the following changes: 2023-06-30 21:27:13 -07:00
mm mm: Update do_vmi_align_munmap() return semantics 2023-07-01 08:10:56 -07:00
net NFS client updates for Linux 6.5 2023-07-01 14:38:25 -07:00
rust rust: error: `impl Debug` for `Error` with `errname()` integration 2023-06-13 01:24:42 +02:00
samples Probes updates for v6.5: 2023-06-30 10:44:53 -07:00
scripts Kbuild updates for v6.5 2023-07-01 09:24:31 -07:00
security powerpc updates for 6.5 2023-06-30 09:20:08 -07:00
sound ARM: SoC changes for 6.5 2023-06-29 15:28:33 -07:00
tools cxl for v6.5 2023-07-01 08:58:41 -07:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt - Yosry Ahmed brought back some cgroup v1 stats in OOM logs. 2023-06-28 10:28:11 -07:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore kbuild: implement CONFIG_TRIM_UNUSED_KSYMS without recursion 2023-06-22 21:21:06 +09:00
.mailmap drm changes for 6.5-rc1: 2023-06-29 11:00:17 -07:00
.rustfmt.toml rust: add `.rustfmt.toml` 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS - Address -Wmissing-prototype warnings 2023-06-26 16:43:54 -07:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS MAINTAINERS: change reiserfs status to obsolete 2023-07-31 19:11:09 +02:00
Makefile Kbuild updates for v6.5 2023-07-01 09:24:31 -07:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06: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.