From 15be06e5c6e151b6c954c1ee4ee093c00c8cc4b9 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 15 Apr 2016 06:23:25 -0700 Subject: Fix memory leak in glob. * glob.c (glob_wrap): Must free the temporary UTF-8 version of the search pattern. --- glob.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'glob.c') diff --git a/glob.c b/glob.c index 76673a59..5806f1fd 100644 --- a/glob.c +++ b/glob.c @@ -69,9 +69,11 @@ val glob_wrap(val pattern, val flags, val errfunc) char *pat_u8 = utf8_dup_to(c_str(pattern)); glob_t gl; - if (s_errfunc) + if (s_errfunc) { + free(pat_u8); uw_throwf(error_s, lit("glob: glob cannot be re-entered from " "its error callback function"), nao); + } s_errfunc = default_bool_arg(errfunc); @@ -79,6 +81,7 @@ val glob_wrap(val pattern, val flags, val errfunc) s_errfunc ? errfunc_thunk : 0, &gl); s_errfunc = nil; + free(pat_u8); if (s_exit_point) { uw_frame_t *ep = s_exit_point; -- cgit v1.2.3