aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2024-11-18 15:37:19 +0100
committerPierre Ossman <ossman@cendio.se>2025-02-25 16:46:19 +0100
commit6bfcaecc4751f1b716022e4a11a8a51758608981 (patch)
treef2523b31459a0a75390d455b62adb63fd35474b2 /vncviewer
parent863d4c1f03f0865225e6b4380a5d6bb16de9b4be (diff)
downloadtigervnc-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.cxx24
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) {