From d77bc335fe5cc5e7fab49dc373be844069f25439 Mon Sep 17 00:00:00 2001 From: Jacques Eloff Date: Thu, 30 Jul 2026 10:29:23 -0700 Subject: [PATCH 1/5] Address 1CS issues --- eng/native/configurecompiler.cmake | 1 + src/clickonce/native/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake index e4eaa16b5b..03dd59a4b4 100644 --- a/eng/native/configurecompiler.cmake +++ b/eng/native/configurecompiler.cmake @@ -21,6 +21,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/configureoptimization.cmake) if(MSVC) add_compile_options(/Zi /FC /Zc:strictStrings) + add_compile_options(/Wall) elseif (CLR_CMAKE_HOST_UNIX) add_compile_options(-g) add_compile_options(-Wall) diff --git a/src/clickonce/native/CMakeLists.txt b/src/clickonce/native/CMakeLists.txt index cfc9ff3431..fb007ca64f 100644 --- a/src/clickonce/native/CMakeLists.txt +++ b/src/clickonce/native/CMakeLists.txt @@ -5,7 +5,7 @@ project(native) include(${CLR_ENG_NATIVE_DIR}/configurecompiler.cmake) if(MSVC) - add_compile_options(/W1) + add_compile_options(/W3) # Host components don't try to handle asynchronous exceptions add_compile_options(/EHsc) From ecb07a42efb034c6fa651ac9a110280d3853c374 Mon Sep 17 00:00:00 2001 From: Jacques Eloff Date: Thu, 30 Jul 2026 12:26:19 -0700 Subject: [PATCH 2/5] Update APIs --- src/clickonce/native/projects/NetCoreCheck/EXE/FileLogger.cpp | 2 +- src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/clickonce/native/projects/NetCoreCheck/EXE/FileLogger.cpp b/src/clickonce/native/projects/NetCoreCheck/EXE/FileLogger.cpp index ab4588bdd5..65401957bb 100644 --- a/src/clickonce/native/projects/NetCoreCheck/EXE/FileLogger.cpp +++ b/src/clickonce/native/projects/NetCoreCheck/EXE/FileLogger.cpp @@ -16,7 +16,7 @@ void FileLogger::Initialize(LPCWSTR filePath) if (filePath) { // If log path was passed in as a parameter, use it - wcscpy(logFilePath, filePath); + wcscpy_s(logFilePath, filePath); } else { diff --git a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp index 33cd11769d..4b6f531503 100644 --- a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp +++ b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp @@ -50,7 +50,7 @@ int CheckRuntime(LPCWSTR frameworkName, LPCWSTR frameworkVersion, LPCWSTR rollFo WCHAR runtimeConfigPath[MAX_PATH]; if (NULL != existingRuntimeConfigPath) { - wcscpy(runtimeConfigPath, existingRuntimeConfigPath); + wcscpy_s(runtimeConfigPath, existingRuntimeConfigPath); g_log->Log(TEXT("Using existing runtimeconfig file '%s'"), runtimeConfigPath); } else @@ -104,7 +104,7 @@ void* GetExport(HMODULE h, const char* name) const size_t size = strlen(name) + 1; std::vector wName; wName.resize(size); - mbstowcs(wName.data(), name, size); + mbstowcs_s(wName.data(), name, size); g_log->Log(TEXT("Failed to load library '%s', error = '%d'"), wName.data(), err); } From 3b132c62f46b01128ed59eede2ee6bcdfb47c465 Mon Sep 17 00:00:00 2001 From: Jacques Eloff Date: Thu, 30 Jul 2026 13:13:14 -0700 Subject: [PATCH 3/5] Fix mbstowcs_s call --- .../native/projects/NetCoreCheck/NetCoreCheck.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp index 4b6f531503..3c35003b0e 100644 --- a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp +++ b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp @@ -104,8 +104,15 @@ void* GetExport(HMODULE h, const char* name) const size_t size = strlen(name) + 1; std::vector wName; wName.resize(size); - mbstowcs_s(wName.data(), name, size); - g_log->Log(TEXT("Failed to load library '%s', error = '%d'"), wName.data(), err); + errno_t convErr = mbstowcs_s(nullptr, wName.data(), size, name, size - 1); + if (convErr != 0) + { + g_log->Log(TEXT("mbstowcs_s failed to convert library name, error = '%d'"), convErr); + } + else + { + g_log->Log(TEXT("Failed to load library '%s', error = '%d'"), wName.data(), err); + } } return address; From b8f04d9e1efa351d9efcdc31a19b28fa6e020ba4 Mon Sep 17 00:00:00 2001 From: Jacques Eloff Date: Thu, 30 Jul 2026 13:17:34 -0700 Subject: [PATCH 4/5] Clean up code --- src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp index 3c35003b0e..dc845d7576 100644 --- a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp +++ b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp @@ -104,8 +104,9 @@ void* GetExport(HMODULE h, const char* name) const size_t size = strlen(name) + 1; std::vector wName; wName.resize(size); - errno_t convErr = mbstowcs_s(nullptr, wName.data(), size, name, size - 1); - if (convErr != 0) + size_t convertedChars = 0; + errno_t convErr = mbstowcs_s(&convertedChars, wName.data(), size, name, size - 1); + if (0 != convErr) { g_log->Log(TEXT("mbstowcs_s failed to convert library name, error = '%d'"), convErr); } From 13f5e7923721b715b350e1ab12bd754335407983 Mon Sep 17 00:00:00 2001 From: Jacques Eloff Date: Thu, 30 Jul 2026 14:18:49 -0700 Subject: [PATCH 5/5] PR feedback, update error message Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp index dc845d7576..62f8f6de5f 100644 --- a/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp +++ b/src/clickonce/native/projects/NetCoreCheck/NetCoreCheck.cpp @@ -108,11 +108,11 @@ void* GetExport(HMODULE h, const char* name) errno_t convErr = mbstowcs_s(&convertedChars, wName.data(), size, name, size - 1); if (0 != convErr) { - g_log->Log(TEXT("mbstowcs_s failed to convert library name, error = '%d'"), convErr); + g_log->Log(TEXT("mbstowcs_s failed to convert export name, error = '%d'"), convErr); } else { - g_log->Log(TEXT("Failed to load library '%s', error = '%d'"), wName.data(), err); + g_log->Log(TEXT("Failed to get export '%s', error = '%d'"), wName.data(), err); } }