diff options
author | Brad King <brad.king@kitware.com> | 2019-08-21 19:03:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-08-22 17:06:15 (GMT) |
commit | a7aade84198343af9de79fda5c37560a2f9531a4 (patch) | |
tree | f9c68817db600effa2683d29b8c8c93ec7942b43 /Source/cmGlobalVisualStudioGenerator.cxx | |
parent | f6211f57d6b350dd8d701c19f80a0a458203e909 (diff) | |
download | CMake-a7aade84198343af9de79fda5c37560a2f9531a4.zip CMake-a7aade84198343af9de79fda5c37560a2f9531a4.tar.gz CMake-a7aade84198343af9de79fda5c37560a2f9531a4.tar.bz2 |
cmGlobalVisualStudioGenerator: Fix buffer sizes used with RegEnumKeyExW
In commit 0b9906c2fb (Windows: Use wide-character system APIs,
2013-12-04, v3.0.0-rc1~254^2) several buffer size computations had to be
updated to multiply by `sizeof(wchar_t)`, but for RegEnumKeyExW we were
already computing the correct number of characters with a division which
was accidentally converted to a multiplication. Use `cm::size` to
compute the number of characters in the buffer instead.
Issue: #19610
Diffstat (limited to 'Source/cmGlobalVisualStudioGenerator.cxx')
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index fea7bfd..724210e 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -556,9 +556,9 @@ bool IsVisualStudioMacrosFileRegistered(const std::string& macrosFile, if (ERROR_SUCCESS == result) { // Iterate the subkeys and look for the values of interest in each subkey: wchar_t subkeyname[256]; - DWORD cch_subkeyname = sizeof(subkeyname) * sizeof(subkeyname[0]); + DWORD cch_subkeyname = cm::size(subkeyname); wchar_t keyclass[256]; - DWORD cch_keyclass = sizeof(keyclass) * sizeof(keyclass[0]); + DWORD cch_keyclass = cm::size(keyclass); FILETIME lastWriteTime; lastWriteTime.dwHighDateTime = 0; lastWriteTime.dwLowDateTime = 0; @@ -621,8 +621,8 @@ bool IsVisualStudioMacrosFileRegistered(const std::string& macrosFile, } ++index; - cch_subkeyname = sizeof(subkeyname) * sizeof(subkeyname[0]); - cch_keyclass = sizeof(keyclass) * sizeof(keyclass[0]); + cch_subkeyname = cm::size(subkeyname); + cch_keyclass = cm::size(keyclass); lastWriteTime.dwHighDateTime = 0; lastWriteTime.dwLowDateTime = 0; } |