Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
N/A
-
None
Description
That's a Windows bug for which I could not find a reference anywhere else.
Service functions, e.g CreateService/OpenService, do not handle activeCodePage=UTF8 correctly
i.e if either service name, or the command line contain non-ASCIIs, it would produce a mojibake.
It affects us since we actually want to use activeCodePage=UTF8 , and need to ensure that as much as possible would work here, too
To reproduce, one will need reasonably new Windows (10 1903+).
1. Unpack the repro zip in the attachment
2. build the test executable
3. Call path\to\service_test.exe <string_with_non-ASCII_character>. It should create service with that name, but it does not happen, as we see later-
4. call "sc query <string_from_>" to see that service was not created, see below for demonstration
The fix/workaround we can do , is not to use those functions directly, but write a wrapper that actually does what is expected (convert string parameters from ANSI to wide, call wide function)
C:\work\repro\xxx\Debug>service_test.exe sörvis
|
|
C:\work\repro\xxx\Debug>sc query sörvis
|
[SC] EnumQueryServicesStatus:OpenService FAILED 1060:
|
|
The specified service does not exist as an installed service.
|
|
C:\work\repro\xxx\Debug> sc query sörvis
|
|
SERVICE_NAME: sörvis
|
TYPE : 10 WIN32_OWN_PROCESS
|
STATE : 1 STOPPED
|
WIN32_EXIT_CODE : 1077 (0x435)
|
SERVICE_EXIT_CODE : 0 (0x0)
|
CHECKPOINT : 0x0
|
WAIT_HINT : 0x0
|
|
C:\work\repro\xxx\Debug> sc delete sörvis
|
[SC] DeleteService SUCCESS
|
Attachments
Issue Links
- is part of
-
MDEV-26713 Windows - improve i18n support
- Closed