linux/fs/squashfs
Linus Torvalds cdbb65c4c7 squashfs metadata 2: electric boogaloo
Anatoly continues to find issues with fuzzed squashfs images.

This time, corrupt, missing, or undersized data for the page filling
wasn't checked for, because the squashfs_{copy,read}_cache() functions
did the squashfs_copy_data() call without checking the resulting data
size.

Which could result in the page cache pages being incompletely filled in,
and no error indication to the user space reading garbage data.

So make a helper function for the "fill in pages" case, because the
exact same incomplete sequence existed in two places.

[ I should have made a squashfs branch for these things, but I didn't
  intend to start doing them in the first place.

  My historical connection through cramfs is why I got into looking at
  these issues at all, and every time I (continue to) think it's a
  one-off.

  Because _this_ time is always the last time. Right?   - Linus ]

Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Tested-by: Willy Tarreau <w@1wt.eu>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Phillip Lougher <phillip@squashfs.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-08-01 10:38:43 -07:00
..
block.c squashfs: more metadata hardening 2018-07-30 17:29:17 -07:00
cache.c squashfs: be more careful about metadata corruption 2018-07-29 12:44:46 -07:00
decompressor_multi_percpu.c
decompressor_multi.c
decompressor_single.c
decompressor.c squashfs: Add zstd support 2017-09-08 19:33:25 -07:00
decompressor.h squashfs: Add zstd support 2017-09-08 19:33:25 -07:00
dir.c romfs, squashfs: switch to ->iterate_shared() 2016-05-09 11:41:15 -04:00
export.c
file_cache.c
file_direct.c squashfs metadata 2: electric boogaloo 2018-08-01 10:38:43 -07:00
file.c squashfs metadata 2: electric boogaloo 2018-08-01 10:38:43 -07:00
fragment.c squashfs: be more careful about metadata corruption 2018-07-29 12:44:46 -07:00
id.c
inode.c vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
Kconfig squashfs: Add zstd support 2017-09-08 19:33:25 -07:00
lz4_wrapper.c fs/pstore: fs/squashfs: change usage of LZ4 to work with new LZ4 version 2017-02-24 17:46:57 -08:00
lzo_wrapper.c
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
namei.c vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
page_actor.c
page_actor.h
squashfs_fs_i.h
squashfs_fs_sb.h
squashfs_fs.h squashfs: be more careful about metadata corruption 2018-07-29 12:44:46 -07:00
squashfs.h squashfs metadata 2: electric boogaloo 2018-08-01 10:38:43 -07:00
super.c Rename superblock flags (MS_xyz -> SB_xyz) 2017-11-27 13:05:09 -08:00
symlink.c vfs: remove ".readlink = generic_readlink" assignments 2016-12-09 16:45:04 +01:00
xattr_id.c
xattr.c xattr_handler: pass dentry and inode as separate arguments of ->get() 2016-04-10 20:48:24 -04:00
xattr.h vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
xz_wrapper.c
zlib_wrapper.c
zstd_wrapper.c squashfs: Add zstd support 2017-09-08 19:33:25 -07:00