aboutsummaryrefslogtreecommitdiff
path: root/win32/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32/process.c')
-rw-r--r--win32/process.c11
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;