diff --git a/components/engine/daemon/logger/etwlogs/etwlogs_windows.go b/components/engine/daemon/logger/etwlogs/etwlogs_windows.go index 0933874525..820b481a38 100644 --- a/components/engine/daemon/logger/etwlogs/etwlogs_windows.go +++ b/components/engine/daemon/logger/etwlogs/etwlogs_windows.go @@ -146,7 +146,13 @@ func callEventRegister() error { } func callEventWriteString(message string) error { - ret, _, _ := procEventWriteString.Call(uintptr(providerHandle), 0, 0, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(message)))) + utf16message, err := syscall.UTF16FromString(message) + + if err != nil { + return err + } + + ret, _, _ := procEventWriteString.Call(uintptr(providerHandle), 0, 0, uintptr(unsafe.Pointer(&utf16message[0]))) if ret != win32CallSuccess { errorMessage := fmt.Sprintf("ETWLogs provider failed to log message. Error: %d", ret) logrus.Error(errorMessage)