diff --git a/epicardium/modules/config.c b/epicardium/modules/config.c index ce03747f85ef64db2ddf7298740cd0c798fe4efa..77606702f9c05efc94caaa188d4a667535692842 100644 --- a/epicardium/modules/config.c +++ b/epicardium/modules/config.c @@ -270,17 +270,17 @@ void load_config(void) ); return; } - char buf[CONFIG_MAX_LINE_LENGTH]; + char buf[CONFIG_MAX_LINE_LENGTH + 1]; int lineNumber = 0; int nread; do { - //zero-terminate in case file is empty - buf[0] = '\0'; - nread = epic_file_read(fd, buf, sizeof(buf)); - if (nread < sizeof(buf)) { + nread = epic_file_read(fd, buf, CONFIG_MAX_LINE_LENGTH); + if (nread < CONFIG_MAX_LINE_LENGTH) { //add fake EOL to ensure termination - buf[nread] = '\n'; + buf[nread++] = '\n'; } + //zero-terminate buffer + buf[nread] = '\0'; char *line = buf; char *eol = NULL; int last_eol = 0;