From 4595b448489b47eb3a33d50231fbf4c66d48d0c6 Mon Sep 17 00:00:00 2001 From: gplm620 Date: Fri, 3 Apr 2026 11:04:51 +0900 Subject: [PATCH] [rust] Fix arch misdetection on 32bit Windows environment On 32-bit Windows environment, get_win_os_architecture() returns "32-bit", while PROCESSOR_ARCHITECTURE variable has "x86". Since the current logic checks only if the result string has "32", resulting in arch misdetected as 64bit on 32bit Windows. To fix this, normalize the return value of get_win_os_architecture() to match possible values of PROCESSOR_ARCHITECTURE. --- rust/src/config.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/src/config.rs b/rust/src/config.rs index 93d28c4eea675..92ec502747da4 100644 --- a/rust/src/config.rs +++ b/rust/src/config.rs @@ -83,7 +83,7 @@ impl ManagerConfig { _architecture = get_win_os_architecture(); } } - if _architecture.contains("32") { + if _architecture.contains("x86") { ARCH_X86.to_string() } else if _architecture.contains("ARM") { ARCH_ARM64.to_string() @@ -316,8 +316,8 @@ fn get_win_os_architecture() -> String { GetNativeSystemInfo(&mut system_info); match system_info.u.s() { - si if si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 => "64-bit", - si if si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL => "32-bit", + si if si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 => "AMD64", + si if si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL => "x86", si if si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_ARM => "ARM", si if si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_ARM64 => "ARM64", si if si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64 => "Itanium-based",