In register_test_dev_kmod, it calls free_test_dev_kmod() to free test_dev. But free_test_dev_kmod() can't set the original pointer test_dev to NULL, because the test_dev was passed by it's value not reference.
Signed-off-by: Lv Yunlong <lyl2...@mail.ustc.edu.cn> --- lib/test_kmod.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/test_kmod.c b/lib/test_kmod.c index 38c250fbace3..aa8a2a563d7e 100644 --- a/lib/test_kmod.c +++ b/lib/test_kmod.c @@ -1124,7 +1124,6 @@ static void free_test_dev_kmod(struct kmod_test_device *test_dev) free_test_dev_info(test_dev); kmod_config_free(test_dev); vfree(test_dev); - test_dev = NULL; } } @@ -1149,6 +1148,7 @@ static struct kmod_test_device *register_test_dev_kmod(void) if (ret) { pr_err("could not register misc device: %d\n", ret); free_test_dev_kmod(test_dev); + test_dev = NULL; goto out; } -- 2.25.1