containerd / containerd/console

windows: Why `initStdios` ignores `GetConsoleMode` errors?

Open
#58 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
200
Forks
60
Avg merge
5d 21h
Merged PRs (30d)
1

Description

Hey there,
Frankly good designed library.

Specifically I am not aware how `golang` `std` works but if it gets its streams using `GetStdHandle` `GetConsoleMode` will fail if a stream was redirected.
https://stackoverflow.com/questions/33476316/win32-getconsolemode-error-code-6

> GetConsoleMode takes A handle to the console input buffer or the console screen buffer.
https://docs.microsoft.com/en-us/windows/console/getconsolemode

> The standard handles of a process may be redirected by a call to SetStdHandle, in which case GetStdHandle returns the redirected handle. If the standard handles have been redirected, you can specify the CONIN$ value in a call to the CreateFile function to get a handle to a console's input buffer. Similarly, you can specify the CONOUT$ value to get a handle to a console's active screen buffer.
https://docs.microsoft.com/en-us/windows/console/getstdhandle

If this is the case it could be handled by oppening `CONIN` `CONOUT`. (I am not sure though how `SetConsoleMode` will work on such handles).

But my point is if `GetConsoleMode` fails maybe it'd better to return error in `newMaster`?

https://github.com/containerd/console/blob/05dadd92d21fc51f0bf56eadcb4201955cfc98d8/console_windows.go#L32-L67

Thank you.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.