bcachefs: Fix rand_delete() test
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 7 Dec 2020 16:44:12 +0000 (11:44 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:49 +0000 (17:08 -0400)
When we didn't find a key to delete we were getting a null ptr deref.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/tests.c

index 2acecbca212e403a1cd2c74e9c3098671ee3550a..6d0f8e233e8bdaec26d45966e24843f84abd8408 100644 (file)
@@ -563,15 +563,14 @@ static int __do_delete(struct btree_trans *trans, struct bpos pos)
 
        iter = bch2_trans_get_iter(trans, BTREE_ID_XATTRS, pos,
                                   BTREE_ITER_INTENT);
-       ret = PTR_ERR_OR_ZERO(iter);
-       if (ret)
-               goto err;
-
        k = bch2_btree_iter_peek(iter);
        ret = bkey_err(k);
        if (ret)
                goto err;
 
+       if (!k.k)
+               goto err;
+
        bkey_init(&delete.k);
        delete.k.p = k.k->p;