linux/fs/ntfs
Kees Cook 2c27ce9150 ntfs: decompress: remove VLA usage
In the quest to remove all stack VLA usage from the kernel[1], this
moves the stack buffer used during decompression to be allocated
externally.

The existing "dest_max_index" used in the VLA is bounded by cb_max_page.
cb_max_page is bounded by max_page, and max_page is bounded by nr_pages.
Since nr_pages is used for the "pages" allocation, it can similarly be
used for the "completed_pages" allocation and passed into the
decompression function.  The error paths are updated to free the new
allocation.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

Link: http://lkml.kernel.org/r/20180626172909.41453-3-keescook@chromium.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Anton Altaparmakov <anton@tuxera.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-08-17 16:20:27 -07:00
..
aops.c ntfs: aops: remove VLA usage 2018-08-17 16:20:27 -07:00
aops.h mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage 2016-04-04 10:41:08 -07:00
attrib.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
attrib.h
bitmap.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
bitmap.h
collate.c
collate.h
compress.c ntfs: decompress: remove VLA usage 2018-08-17 16:20:27 -07:00
debug.c ntfs: remove bogus space 2014-10-09 22:25:46 -04:00
debug.h ntfs: logging clean-up 2014-04-07 16:35:49 -07:00
dir.c fs: convert a pile of fsync routines to errseq_t based reporting 2017-08-01 08:39:29 -04:00
dir.h
endian.h
file.c fs: convert a pile of fsync routines to errseq_t based reporting 2017-08-01 08:39:29 -04:00
index.c mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage 2016-04-04 10:41:08 -07:00
index.h
inode.c fs/ntfs: use timespec64 directly for timestamp conversion 2018-08-17 16:20:27 -07:00
inode.h fs: cleanup slight list_entry abuse 2015-06-23 18:01:59 -04:00
Kconfig
layout.h
lcnalloc.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
lcnalloc.h
logfile.c block,fs: untangle fs.h and blk_types.h 2016-11-01 09:43:26 -06:00
logfile.h
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
malloc.h NTFS: use kvfree() in ntfs_free() 2015-06-24 17:49:38 -07:00
mft.c ntfs: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) call 2018-03-28 01:39:02 -04:00
mft.h
mst.c
namei.c ntfs: Use ERR_CAST() to avoid cross-structure cast 2017-05-28 10:11:48 -07:00
ntfs.h mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
quota.c wrappers for ->i_mutex access 2016-01-22 18:04:28 -05:00
quota.h
runlist.c
runlist.h
super.c Rename superblock flags (MS_xyz -> SB_xyz) 2017-11-27 13:05:09 -08:00
sysctl.c ntfs: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
sysctl.h
time.h fs/ntfs: use timespec64 directly for timestamp conversion 2018-08-17 16:20:27 -07:00
types.h
unistr.c
upcase.c
usnjrnl.c
usnjrnl.h
volume.h