diff options
-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) { |