Skip to content

Commit 2d6241d

Browse files
committed
memory fixes
1 parent ea7194b commit 2d6241d

1 file changed

Lines changed: 12 additions & 17 deletions

File tree

src/scriptexec.c

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,6 @@ struct ScriptExecResult scriptexec_run_with_options(const char *script, struct S
8787
string_buffer_append_string(buffer, "/script");
8888
char *script_file = string_buffer_to_string(buffer);
8989

90-
string_buffer_append_string(buffer, ".out");
91-
char *out_file = string_buffer_to_string(buffer);
92-
93-
string_buffer_clear(buffer);
94-
string_buffer_append_string(buffer, script_file);
95-
string_buffer_append_string(buffer, ".err");
96-
char *err_file = string_buffer_to_string(buffer);
97-
9890
// write script file
9991
bool written = fsio_write_text_file(script_file, updated_script);
10092
free(updated_script);
@@ -103,15 +95,20 @@ struct ScriptExecResult scriptexec_run_with_options(const char *script, struct S
10395
rmdir(dir_name);
10496

10597
string_buffer_release(buffer);
106-
free(dir_name);
10798
free(script_file);
108-
free(out_file);
109-
free(err_file);
11099

111100
result.code = -1;
112101
return(result);
113102
}
114103

104+
string_buffer_append_string(buffer, ".out");
105+
char *out_file = string_buffer_to_string(buffer);
106+
107+
string_buffer_clear(buffer);
108+
string_buffer_append_string(buffer, script_file);
109+
string_buffer_append_string(buffer, ".err");
110+
char *err_file = string_buffer_to_string(buffer);
111+
115112
// create command
116113
char *runner = options.runner;
117114
if (runner == NULL)
@@ -132,17 +129,15 @@ struct ScriptExecResult scriptexec_run_with_options(const char *script, struct S
132129
result.code = system(command);
133130
free(command);
134131

135-
// read out/err
136-
result.out = _scriptexec_read_and_delete_text_file(out_file);
137-
result.err = _scriptexec_read_and_delete_text_file(err_file);
138-
139132
// delete files
140133
remove(script_file);
141134
rmdir(dir_name);
142-
143-
free(dir_name);
144135
free(script_file);
136+
137+
// read out/err
138+
result.out = _scriptexec_read_and_delete_text_file(out_file);
145139
free(out_file);
140+
result.err = _scriptexec_read_and_delete_text_file(err_file);
146141
free(err_file);
147142

148143
return(result);

0 commit comments

Comments
 (0)