From 50dc260fd66cd5348d66a673bb6b2d48761fc16a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Thu, 26 Mar 2026 20:27:57 +0800 Subject: [PATCH] Common (Windows): fixes str length variable handling --- src/common/windows/version.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/windows/version.c b/src/common/windows/version.c index 42033ef8e..df7b47c34 100644 --- a/src/common/windows/version.c +++ b/src/common/windows/version.c @@ -63,7 +63,7 @@ bool ffGetFileVersion(const wchar_t* filePath, const wchar_t* stringName, FFstrb } wchar_t* value; - UINT valueLen; + UINT valueLen; // Number of characters, including null terminator wchar_t subBlock[128]; snwprintf(subBlock, ARRAY_SIZE(subBlock), L"\\StringFileInfo\\" FF_VERSION_LANG_EN_US L"\\%ls", stringName); @@ -71,7 +71,7 @@ bool ffGetFileVersion(const wchar_t* filePath, const wchar_t* stringName, FFstrb if (VerQueryValueW(versionData, subBlock, (void**) &value, &valueLen) && valueLen > 0) { - ffStrbufSetNWS(version, valueLen / sizeof(wchar_t), value); + ffStrbufSetNWS(version, valueLen - 1, value); FF_DEBUG("version string resolved (default lang): %s", version->chars); return true; } @@ -90,7 +90,7 @@ bool ffGetFileVersion(const wchar_t* filePath, const wchar_t* stringName, FFstrb if (VerQueryValueW(versionData, subBlock, (void**) &value, &valueLen) && valueLen > 0) { - ffStrbufSetNWS(version, valueLen / sizeof(wchar_t), value); + ffStrbufSetNWS(version, valueLen - 1, value); FF_DEBUG("version string resolved (translation fallback): %s", version->chars); return true; }