summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-06-29 18:03:40 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2019-06-29 18:14:32 -0400
commit22d4f6bbcb29ee7d3ffc9aae059fd115a0c04cb6 (patch)
treef4b7bc69b2e6de9287af4070381631b48604ebda
parent1f431b384d032f0bb7d3b4241ba485dd416babdf (diff)
bcachefs: Check for key size > offset
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/bkey_methods.c3
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";