Various swap code assumes it runs either on a block device or on a regular file. Make this restriction explicit using checks right after opening the file.
Signed-off-by: Christoph Hellwig <[email protected]> --- mm/swapfile.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/swapfile.c b/mm/swapfile.c index a183c9c95695..651c1b59ff9f 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3515,6 +3515,10 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) error = -ENOENT; goto bad_swap_unlock_inode; } + if (!S_ISBLK(inode->i_mode) && !S_ISREG(inode->i_mode)) { + error = -EINVAL; + goto bad_swap_unlock_inode; + } if (IS_SWAPFILE(inode)) { error = -EBUSY; goto bad_swap_unlock_inode; -- 2.53.0 _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
