@@ -469,11 +469,11 @@ mod windows_conpty {
469469 0 ,
470470 & mut hpc,
471471 ) ;
472- let _ = CloseHandle ( input_read) ;
473- let _ = CloseHandle ( output_write) ;
474472 if hr < 0 {
473+ let _ = CloseHandle ( input_read) ;
475474 let _ = CloseHandle ( input_write) ;
476475 let _ = CloseHandle ( output_read) ;
476+ let _ = CloseHandle ( output_write) ;
477477 return Err ( app_error ( format ! (
478478 "failed to create Windows ConPTY for TUI smoke: HRESULT 0x{:08x}" ,
479479 hr as u32
@@ -483,7 +483,7 @@ mod windows_conpty {
483483 let mut attr_size: SIZE_T = 0 ;
484484 let _ = InitializeProcThreadAttributeList ( null_mut ( ) , 1 , 0 , & mut attr_size) ;
485485 if attr_size == 0 {
486- close_conpty_resources ( hpc, input_write, output_read) ;
486+ close_conpty_resources ( hpc, input_read , input_write, output_read, output_write ) ;
487487 return Err ( app_error (
488488 "failed to size Windows ConPTY process attribute list" ,
489489 ) ) ;
@@ -493,7 +493,7 @@ mod windows_conpty {
493493 let attr_list = attr_storage. as_mut_ptr ( ) . cast :: < c_void > ( ) ;
494494 if InitializeProcThreadAttributeList ( attr_list, 1 , 0 , & mut attr_size) == 0 {
495495 let err = GetLastError ( ) ;
496- close_conpty_resources ( hpc, input_write, output_read) ;
496+ close_conpty_resources ( hpc, input_read , input_write, output_read, output_write ) ;
497497 return Err ( app_error ( format ! (
498498 "failed to initialize Windows ConPTY process attribute list: {err}"
499499 ) ) ) ;
@@ -511,7 +511,7 @@ mod windows_conpty {
511511 {
512512 let err = GetLastError ( ) ;
513513 DeleteProcThreadAttributeList ( attr_list) ;
514- close_conpty_resources ( hpc, input_write, output_read) ;
514+ close_conpty_resources ( hpc, input_read , input_write, output_read, output_write ) ;
515515 return Err ( app_error ( format ! (
516516 "failed to attach Windows ConPTY to startup info: {err}"
517517 ) ) ) ;
@@ -538,13 +538,15 @@ mod windows_conpty {
538538 {
539539 let err = GetLastError ( ) ;
540540 DeleteProcThreadAttributeList ( attr_list) ;
541- close_conpty_resources ( hpc, input_write, output_read) ;
541+ close_conpty_resources ( hpc, input_read , input_write, output_read, output_write ) ;
542542 return Err ( app_error ( format ! (
543543 "failed to start Windows ConPTY TUI smoke child: {err}"
544544 ) ) ) ;
545545 }
546546
547547 DeleteProcThreadAttributeList ( attr_list) ;
548+ let _ = CloseHandle ( input_read) ;
549+ let _ = CloseHandle ( output_write) ;
548550
549551 let output_read_raw = output_read as usize ;
550552 let reader = thread:: spawn ( move || {
@@ -607,9 +609,17 @@ mod windows_conpty {
607609 Ok ( ( read, write) )
608610 }
609611
610- unsafe fn close_conpty_resources ( hpc : HPCON , input_write : HANDLE , output_read : HANDLE ) {
612+ unsafe fn close_conpty_resources (
613+ hpc : HPCON ,
614+ input_read : HANDLE ,
615+ input_write : HANDLE ,
616+ output_read : HANDLE ,
617+ output_write : HANDLE ,
618+ ) {
619+ let _ = CloseHandle ( input_read) ;
611620 let _ = CloseHandle ( input_write) ;
612621 let _ = CloseHandle ( output_read) ;
622+ let _ = CloseHandle ( output_write) ;
613623 ClosePseudoConsole ( hpc) ;
614624 }
615625
0 commit comments