summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2019-02-01 17:57:58 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2019-02-01 17:57:58 +0100
commit5ca1c40c92f074315bbdfe328c00484ff18146f2 (patch)
tree3d801d2ec86d9b155326289bd4e557e8b956a61d /src
parentf3fa39437c711f75949fbe0056007e343a428062 (diff)
Fix configfile parsing of empty value lines and creation of missing configuration directory.
Diffstat (limited to 'src')
-rw-r--r--src/configfile.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/configfile.cc b/src/configfile.cc
index 731d3aa..54fb4d1 100644
--- a/src/configfile.cc
+++ b/src/configfile.cc
@@ -84,10 +84,10 @@ static bool createConfigPath()
std::string configpath = getConfigPath();
struct stat st;
- if(stat(configpath.c_str(), &st) == 0)
+ if(stat(configpath.c_str(), &st) != 0)
{
DEBUG(configfile, "No configuration exists, creating directory '%s'\n",
- configpath.c_str());
+ configpath.c_str());
#if DG_PLATFORM == DG_PLATFORM_WINDOWS
if(mkdir(configpath.c_str()) < 0)
{
@@ -221,7 +221,7 @@ std::string ConfigFile::readLine()
{
return "";
}
-
+
std::string line;
char buf[1024];
@@ -383,7 +383,8 @@ bool ConfigFile::parseLine(const std::string& line)
}
// If state == in_value_XXX_quoted here, the string was not terminated.
- if(state != after_value && state != in_value)
+ // If state == before_value it means that the value is empty.
+ if(state != after_value && state != in_value && state != before_value)
{
ERR(configfile, "Malformed line: '%s'", line.c_str());
return false;