diff options
Diffstat (limited to 'win32/process.c')
-rw-r--r-- | win32/process.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/win32/process.c b/win32/process.c index 35480e08d..f001ef35a 100644 --- a/win32/process.c +++ b/win32/process.c | |||
@@ -259,8 +259,12 @@ create_detached_process(const char *prog, char *const *argv) | |||
259 | int success; | 259 | int success; |
260 | 260 | ||
261 | argc = string_array_len((char **)argv); | 261 | argc = string_array_len((char **)argv); |
262 | for (i = 0; i < argc; i++) | 262 | for (i = 0; i < argc; i++) { |
263 | command = xappendword(command, quote_arg(argv[i])); | 263 | char *qarg = quote_arg(argv[i]); |
264 | command = xappendword(command, qarg); | ||
265 | if (ENABLE_FEATURE_CLEAN_UP) | ||
266 | free(qarg); | ||
267 | } | ||
264 | 268 | ||
265 | ZeroMemory(&siStartInfo, sizeof(STARTUPINFO)); | 269 | ZeroMemory(&siStartInfo, sizeof(STARTUPINFO)); |
266 | siStartInfo.cb = sizeof(STARTUPINFO); | 270 | siStartInfo.cb = sizeof(STARTUPINFO); |
@@ -279,7 +283,8 @@ create_detached_process(const char *prog, char *const *argv) | |||
279 | &siStartInfo, /* STARTUPINFO pointer */ | 283 | &siStartInfo, /* STARTUPINFO pointer */ |
280 | &piProcInfo); /* receives PROCESS_INFORMATION */ | 284 | &piProcInfo); /* receives PROCESS_INFORMATION */ |
281 | 285 | ||
282 | free(command); | 286 | if (ENABLE_FEATURE_CLEAN_UP) |
287 | free(command); | ||
283 | 288 | ||
284 | if (!success) | 289 | if (!success) |
285 | return -1; | 290 | return -1; |