diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-06-29 18:03:40 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:23 -0400 |
commit | e812cf38c558f4d3a6bef8a077478a6632811f0b (patch) | |
tree | 49034f9f45a0c74fe14c375876503f72f1808c2a /fs/bcachefs | |
parent | 91052b9de806c4dd1ac0447ba7928e49b107eec7 (diff) |
bcachefs: Check for key size > offset
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r-- | fs/bcachefs/bkey_methods.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/bcachefs/bkey_methods.c b/fs/bcachefs/bkey_methods.c index 09ee958c5568..27f196ef0b18 100644 --- a/fs/bcachefs/bkey_methods.c +++ b/fs/bcachefs/bkey_methods.c @@ -90,6 +90,9 @@ const char *__bch2_bkey_invalid(struct bch_fs *c, struct bkey_s_c k, if (btree_node_type_is_extents(type)) { if ((k.k->size == 0) != bkey_deleted(k.k)) return "bad size field"; + + if (k.k->size > k.k->p.offset) + return "size greater than offset"; } else { if (k.k->size) return "nonzero size field"; |