diff options
author | Pierre Ossman <ossman@cendio.se> | 2024-11-18 15:37:19 +0100 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2025-02-25 16:46:19 +0100 |
commit | 6bfcaecc4751f1b716022e4a11a8a51758608981 (patch) | |
tree | f2523b31459a0a75390d455b62adb63fd35474b2 /vncviewer | |
parent | 863d4c1f03f0865225e6b4380a5d6bb16de9b4be (diff) | |
download | tigervnc-6bfcaecc4751f1b716022e4a11a8a51758608981.tar.gz tigervnc-6bfcaecc4751f1b716022e4a11a8a51758608981.zip |
Use more standard value for array length
Avoid surprises by specifying the number of entries in the array,
rather than the total size of the array.
Diffstat (limited to 'vncviewer')
-rw-r--r-- | vncviewer/parameters.cxx | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/vncviewer/parameters.cxx b/vncviewer/parameters.cxx index 12cafdd9..e728026e 100644 --- a/vncviewer/parameters.cxx +++ b/vncviewer/parameters.cxx @@ -580,7 +580,7 @@ static void getParametersFromReg(VoidParameter* parameters[], int intValue = 0; char stringValue[buffersize]; - for (size_t i = 0; i < parameters_len/sizeof(VoidParameter*); i++) { + for (size_t i = 0; i < parameters_len; i++) { try { if (dynamic_cast<IntParameter*>(parameters[i]) != nullptr) { if (getKeyInt(parameters[i]->getName(), &intValue, hKey)) @@ -629,9 +629,13 @@ static char* loadFromReg() { strcpy(servername, ""); } - getParametersFromReg(parameterArray, sizeof(parameterArray), &hKey); + getParametersFromReg(parameterArray, + sizeof(parameterArray) / sizeof(VoidParameter*), + &hKey); getParametersFromReg(readOnlyParameterArray, - sizeof(readOnlyParameterArray), &hKey); + sizeof(readOnlyParameterArray) / + sizeof(VoidParameter*), + &hKey); res = RegCloseKey(hKey); if (res != ERROR_SUCCESS) @@ -705,7 +709,7 @@ static bool findAndSetViewerParameterFromValue( char decodingBuffer[buffersize]; // Find and set the correct parameter - for (size_t i = 0; i < parameters_len/sizeof(VoidParameter*); i++) { + for (size_t i = 0; i < parameters_len; i++) { if (strcasecmp(line, parameters[i]->getName()) == 0) { if(!decodeValue(value, decodingBuffer, sizeof(decodingBuffer))) throw std::runtime_error(_("Invalid format or too large value")); @@ -825,12 +829,16 @@ char* loadViewerParameters(const char *filename) { invalidParameterName = false; } else { - invalidParameterName = findAndSetViewerParameterFromValue(parameterArray, sizeof(parameterArray), - value, line); + invalidParameterName = findAndSetViewerParameterFromValue( + parameterArray, + sizeof(parameterArray) / sizeof(VoidParameter *), + value, line); if (invalidParameterName) { - invalidParameterName = findAndSetViewerParameterFromValue(readOnlyParameterArray, sizeof(readOnlyParameterArray), - value, line); + invalidParameterName = findAndSetViewerParameterFromValue( + readOnlyParameterArray, + sizeof(readOnlyParameterArray) / sizeof(VoidParameter *), + value, line); } } } catch(std::exception& e) { |