diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-04-13 10:30:58 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:00 -0400 |
commit | 319c1305071c3ac813c3ea9eed15d1a0d26f983a (patch) | |
tree | 48eeadeec90ad2dfff77fc30490e05145c921cf3 | |
parent | 423300e8fe41e7613a8edba59bca85eb7517731d (diff) |
bcachefs: Fix heap overrun in bch2_fs_usage_read() XXX squash
oops
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/buckets.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c index 7093737a02f3..4791f4896d6b 100644 --- a/fs/bcachefs/buckets.c +++ b/fs/bcachefs/buckets.c @@ -224,7 +224,7 @@ u64 bch2_fs_usage_read_one(struct bch_fs *c, u64 *v) struct bch_fs_usage_online *bch2_fs_usage_read(struct bch_fs *c) { struct bch_fs_usage_online *ret; - unsigned seq, i, v, u64s = fs_usage_u64s(c); + unsigned seq, i, v, u64s = fs_usage_u64s(c) + 1; retry: ret = kmalloc(u64s * sizeof(u64), GFP_NOFS); if (unlikely(!ret)) @@ -232,7 +232,7 @@ retry: percpu_down_read(&c->mark_lock); - v = fs_usage_u64s(c); + v = fs_usage_u64s(c) + 1; if (unlikely(u64s != v)) { u64s = v; percpu_up_read(&c->mark_lock); |