When bset past end of btree node, we should not add sectors to
b->written, which will overflow b->written.

Reported-by: syzbot+3cb3d9e8c3f197754...@syzkaller.appspotmail.com
Tested-by: syzbot+3cb3d9e8c3f197754...@syzkaller.appspotmail.com
Signed-off-by: Alan Huang <mmpgour...@gmail.com>
---
 fs/bcachefs/btree_io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/bcachefs/btree_io.c b/fs/bcachefs/btree_io.c
index 80a0094be356..18413b4f22a3 100644
--- a/fs/bcachefs/btree_io.c
+++ b/fs/bcachefs/btree_io.c
@@ -1187,7 +1187,7 @@ int bch2_btree_node_read_done(struct bch_fs *c, struct 
bch_dev *ca,
                             le64_to_cpu(i->journal_seq),
                             b->written, b->written + sectors, ptr_written);
 
-               b->written += sectors;
+               b->written = min(b->written + sectors, btree_sectors(c));
 
                if (blacklisted && !first)
                        continue;
-- 
2.48.1


Reply via email to