win, test: fix double close in test runner

Fixes: https://github.com/libuv/libuv/issues/1426
Credit: Tom Seddon <github@tomseddon.plus.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
Bartosz Sosnowski 2017-08-07 14:56:20 +02:00
parent 3c6f9e54ef
commit bded0fa4f0

View File

@ -212,8 +212,18 @@ int process_copy_output(process_info_t* p, FILE* stream) {
char buf[1024];
int fd, r;
FILE* f;
HANDLE stdio_out_copy;
fd = _open_osfhandle((intptr_t)p->stdio_out, _O_RDONLY | _O_TEXT);
if (!DuplicateHandle(GetCurrentProcess(),
p->stdio_out,
GetCurrentProcess(),
&stdio_out_copy,
0,
FALSE,
0))
return -1;
fd = _open_osfhandle((intptr_t)stdio_out_copy, _O_RDONLY | _O_TEXT);
if (fd == -1)
return -1;
f = _fdopen(fd, "rt");