Re: [PATCH -v3 3/3] resource, kunit: Add test case for region_intersects()
From: Huang, Ying
Date: Sun Sep 29 2024 - 20:56:49 EST
Kees Bakker <kees@xxxxxxxxxxxx> writes:
> Op 06-09-2024 om 05:07 schreef Huang Ying:
>> [...]
>> +static void resource_test_insert_resource(struct kunit *test, struct resource *parent,
>> + resource_size_t start, resource_size_t size,
>> + const char *name, unsigned long flags)
>> +{
>> + struct resource *res;
>> +
>> + res = kzalloc(sizeof(*res), GFP_KERNEL);
>> + KUNIT_ASSERT_NOT_NULL(test, res);
>> +
>> + res->name = name;
>> + res->start = start;
>> + res->end = start + size - 1;
>> + res->flags = flags;
>> + if (insert_resource(parent, res)) {
>> + kfree(res);
>> + KUNIT_FAIL_AND_ABORT(test, "Fail to insert resource %pR\n", res);
> Isn't this a user-after-free?
Good catch! Thanks for pointing this out. I should be more careful for
the error path.
>> + }
>> +
>> + kunit_add_action_or_reset(test, remove_free_resource, res);
This may cause use-after-free if failed to allocate memory for
add_action. Will fix this too.
>> +}
>>
--
Best Regards,
Huang, Ying