Le 31/07/2024 à 00:23, Kent Overstreet a écrit :
On Tue, Jul 30, 2024 at 02:45:17PM GMT, Dan Carpenter wrote:
Hello Kent Overstreet,

Commit ffcbec607613 ("bcachefs: Kill opts.buckets_nouse") from Apr 6,
2024 (linux-next), leads to the following Smatch static checker
warning:

        fs/bcachefs/super.c:1202 bch2_dev_free()
        warn: 'ca->buckets_nouse' double freed

yup, that's a bug

-- >8 --
Subject: [PATCH] bcachefs: Fix double free of ca->buckets_nouse

Reported-by: Dan Carpenter <dan.carpen...@linaro.org>
Fixes: ffcbec6076 ("bcachefs: Kill opts.buckets_nouse")
Signed-off-by: Kent Overstreet <kent.overstr...@linux.dev>

diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c
index 0542953a7a..6d0ce3d734 100644
--- a/fs/bcachefs/super.c
+++ b/fs/bcachefs/super.c
@@ -1195,7 +1195,6 @@ static void bch2_dev_free(struct bch_dev *ca)
        if (ca->kobj.state_in_sysfs)
                kobject_del(&ca->kobj);
- kfree(ca->buckets_nouse);

Hi,

unrelated, but apparently this should also have been kvfree().

Dan, do you already have a check for such cases where kvfree() or kfree() are called when the other one should be used instead?

CJ

        bch2_free_super(&ca->disk_sb);
        bch2_dev_allocator_background_exit(ca);
        bch2_dev_journal_exit(ca);




Reply via email to