diff --git a/planck-c/functions.c b/planck-c/functions.c index 9d13f961..1e04d5d9 100644 --- a/planck-c/functions.c +++ b/planck-c/functions.c @@ -778,7 +778,9 @@ JSValueRef function_list_files(JSContextRef ctx, JSObjectRef function, JSObjectR size_t buf_len = path_len + strlen(dir->d_name) + 2; char *buf = malloc(buf_len); snprintf(buf, buf_len, "%s/%s", path, dir->d_name); - paths[count++] = c_string_to_value(ctx, buf); + JSValueRef path_ref = c_string_to_value(ctx, buf); + paths[count++] = path_ref; + JSValueProtect(ctx, path_ref); free(buf); if (count == capacity) { @@ -793,6 +795,11 @@ JSValueRef function_list_files(JSContextRef ctx, JSObjectRef function, JSObjectR JSValueRef rv = JSObjectMakeArray(ctx, count, paths, NULL); + size_t i = 0; + for (i=0; i