aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-04-13 10:30:58 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:09:00 -0400
commit319c1305071c3ac813c3ea9eed15d1a0d26f983a (patch)
tree48eeadeec90ad2dfff77fc30490e05145c921cf3
parent423300e8fe41e7613a8edba59bca85eb7517731d (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.c4
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);