From daa3efe6402544753d6a0d5c4212fddb780db25d Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Wed, 29 Jun 2016 05:15:53 +0200 Subject: [PATCH] Crash fix if settings file has wrong format --- settings.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/settings.cpp b/settings.cpp index 1b726ba9..b36da52a 100644 --- a/settings.cpp +++ b/settings.cpp @@ -29,9 +29,11 @@ void Settings::load() { string value; string line; size_t pos = string::npos; + int valueCheck; infile.seekg(0); while (infile.good()) { + valueCheck = 0; //read json file getline(infile, line); pos = line.find("\"value\":"); @@ -42,8 +44,19 @@ void Settings::load() { while (lineStream.good()) { getline(lineStream, value, ','); settingsElements.push_back(value); + valueCheck++; numValues++; } + //two values per line are expected + //add missing value + if(valueCheck < 2) { + settingsElements.push_back(""); + } + //discard additional values + for (valueCheck; valueCheck > 2; valueCheck--) { + settingsElements.pop_back(); + numValues--; + } } } infile.close();