Re: [syzbot] [PATCH] Test oob in squashfs readahead

From: syzbot
Date: Mon Nov 13 2023 - 07:10:48 EST


For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx.

***

Subject: [PATCH] Test oob in squashfs readahead
Author: eadavis@xxxxxx

please test squashfs readahead oob

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 13d88ac54ddd

diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
index 8ba8c4c50770..a60c2be4447e 100644
--- a/fs/squashfs/file.c
+++ b/fs/squashfs/file.c
@@ -553,6 +553,9 @@ static void squashfs_readahead(struct readahead_control *ractl)
if (!pages)
return;

+ printk("p: %p, bs: %d, bl: %d, mp: %d, start: %d, fe: %d, %s\n",
+ pages, msblk->block_size, msblk->block_log,
+ max_pages, start, file_end, __func__);
for (;;) {
pgoff_t index;
int res, bsize;
@@ -566,6 +569,8 @@ static void squashfs_readahead(struct readahead_control *ractl)

max_pages = (expected + PAGE_SIZE - 1) >> PAGE_SHIFT;

+ printk("p: %p, mp: %d, e: %d,isr: %d, start: %d, %s\n", pages, max_pages,
+ expected, i_size_read(inode), start, __func__);
nr_pages = __readahead_batch(ractl, pages, max_pages);
if (!nr_pages)
break;
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 22e812808e5c..aad49a62b5ce 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -275,6 +275,8 @@ static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc)
if (msblk->block_log > SQUASHFS_FILE_MAX_LOG)
goto failed_mount;

+ printk("bs: %d, bl: %d, %s\n", msblk->block_size, msblk->block_log, __func__);
+
/* Check that block_size and block_log match */
if (msblk->block_size != (1 << msblk->block_log))
goto insanity;