Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Commit 1b72808

Browse files
committed
Fix memory leak with custom importer not being freed
1 parent 763717a commit 1b72808

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

sass_context.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,9 +549,12 @@ extern "C" {
549549
cur = next;
550550
}
551551
}
552+
// Free custom importer
553+
free(options->importer);
552554
// Free the list container
553555
free(options->c_functions);
554556
// Make it null terminated
557+
options->importer = 0;
555558
options->c_functions = 0;
556559
options->include_paths = 0;
557560
}

sass_functions.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ extern "C" {
6666
Sass_C_Import_Fn sass_import_get_function(Sass_C_Import_Callback fn) { return fn->function; }
6767
void* sass_import_get_cookie(Sass_C_Import_Callback fn) { return fn->cookie; }
6868

69+
// Just in case we have some stray import structs
70+
void sass_delete_importer (Sass_C_Import_Callback fn)
71+
{
72+
free(fn);
73+
}
74+
6975
// Creator for sass custom importer return argument list
7076
struct Sass_Import** sass_make_import_list(size_t length)
7177
{

sass_functions.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ Sass_C_Import_Callback sass_make_importer (Sass_C_Import_Fn, void* cookie);
2828
Sass_C_Import_Fn sass_import_get_function (Sass_C_Import_Callback fn);
2929
void* sass_import_get_cookie (Sass_C_Import_Callback fn);
3030

31+
// Deallocator for associated memory
32+
void sass_delete_importer (Sass_C_Import_Callback fn);
3133

3234
// Creator for sass custom importer return argument list
3335
struct Sass_Import** sass_make_import_list (size_t length);

0 commit comments

Comments
 (0)