Fix potential memory leak at fiber pool

Do not "allocate then wrap".  It leaks the allocated memory if
failed to create the wrapper.
This commit is contained in:
Nobuyoshi Nakada 2022-03-16 18:41:45 +09:00
Родитель cdf25cad6b
Коммит f69a969544
1 изменённых файлов: 2 добавлений и 2 удалений

4
cont.c
Просмотреть файл

@ -2845,9 +2845,9 @@ static const rb_data_type_t FiberPoolDataType = {
static VALUE
fiber_pool_alloc(VALUE klass)
{
struct fiber_pool * fiber_pool = RB_ALLOC(struct fiber_pool);
struct fiber_pool *fiber_pool;
return TypedData_Wrap_Struct(klass, &FiberPoolDataType, fiber_pool);
return TypedData_Make_Struct(klass, struct fiber_pool, &FiberPoolDataType, fiber_pool);
}
static VALUE