Commit 319c1305 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet

bcachefs: Fix heap overrun in bch2_fs_usage_read() XXX squash

oops
Signed-off-by: default avatarKent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 423300e8
...@@ -224,7 +224,7 @@ u64 bch2_fs_usage_read_one(struct bch_fs *c, u64 *v) ...@@ -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 *bch2_fs_usage_read(struct bch_fs *c)
{ {
struct bch_fs_usage_online *ret; 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: retry:
ret = kmalloc(u64s * sizeof(u64), GFP_NOFS); ret = kmalloc(u64s * sizeof(u64), GFP_NOFS);
if (unlikely(!ret)) if (unlikely(!ret))
...@@ -232,7 +232,7 @@ struct bch_fs_usage_online *bch2_fs_usage_read(struct bch_fs *c) ...@@ -232,7 +232,7 @@ struct bch_fs_usage_online *bch2_fs_usage_read(struct bch_fs *c)
percpu_down_read(&c->mark_lock); percpu_down_read(&c->mark_lock);
v = fs_usage_u64s(c); v = fs_usage_u64s(c) + 1;
if (unlikely(u64s != v)) { if (unlikely(u64s != v)) {
u64s = v; u64s = v;
percpu_up_read(&c->mark_lock); percpu_up_read(&c->mark_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment