config-parser: Handle lines that don't end in \n

If the last line in a config file doesn't have a newline
we end up chopping off the last character from that line.
diff --git a/shared/config-parser.c b/shared/config-parser.c
index 5ffa466..10ff86a 100644
--- a/shared/config-parser.c
+++ b/shared/config-parser.c
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <assert.h>
+#include <ctype.h>
 
 #include "config-parser.h"
 
@@ -55,11 +56,13 @@
 
 	case CONFIG_KEY_STRING:
 		len = strlen(value);
-		s = malloc(len);
+		while (len > 0 && isspace(value[len - 1]))
+			len--;
+		s = malloc(len + 1);
 		if (s == NULL)
 			return -1;
-		memcpy(s, value, len - 1);
-		s[len - 1] = '\0';
+		memcpy(s, value, len);
+		s[len] = '\0';
 		*(char **)key->data = s;
 		return 0;