From 6436f1e0f8687a65471f5fec07e85f64adaa66e9 Mon Sep 17 00:00:00 2001 From: Emanuele Torre Date: Sat, 26 Aug 2023 23:30:47 +0200 Subject: [PATCH] Fix memory leak in find_lib for some invalid inputs --- src/linker.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/linker.c b/src/linker.c index e86c2b4e..e7d1024c 100644 --- a/src/linker.c +++ b/src/linker.c @@ -136,16 +136,22 @@ static jv jv_basename(jv name) { static jv find_lib(jq_state *jq, jv rel_path, jv search, const char *suffix, jv jq_origin, jv lib_origin) { if (!jv_is_valid(rel_path)) { jv_free(search); + jv_free(jq_origin); + jv_free(lib_origin); return rel_path; } if (jv_get_kind(rel_path) != JV_KIND_STRING) { jv_free(rel_path); jv_free(search); + jv_free(jq_origin); + jv_free(lib_origin); return jv_invalid_with_msg(jv_string_fmt("Module path must be a string")); } if (jv_get_kind(search) != JV_KIND_ARRAY) { jv_free(rel_path); jv_free(search); + jv_free(jq_origin); + jv_free(lib_origin); return jv_invalid_with_msg(jv_string_fmt("Module search path must be an array")); }