diff --git a/src/bootstrap/util.rs b/src/bootstrap/util.rs index 07941e588387ccfe11da9581838d562a9c137095..492eceef05c75045e711b4309565b214592422ff 100644 --- a/src/bootstrap/util.rs +++ b/src/bootstrap/util.rs @@ -288,6 +288,7 @@ fn DeviceIoControl(hDevice: HANDLE, nOutBufferSize: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL; + fn CloseHandle(hObject: HANDLE) -> BOOL; } fn to_u16s>(s: S) -> io::Result> { @@ -341,11 +342,13 @@ fn to_u16s>(s: S) -> io::Result> { &mut ret, ptr::null_mut()); - if res == 0 { + let out = if res == 0 { Err(io::Error::last_os_error()) } else { Ok(()) - } + }; + CloseHandle(h); + out } } }