diff -urp 1/parser.c 2/parser.c
--- 1/parser.c	2008-10-28 04:17:05.000000000 +0800
+++ 2/parser.c	2018-06-26 20:25:59.000000000 +0800
@@ -203,7 +203,7 @@ static char *get_optstr(char *buf, char 
 	len = strnlen(string, BUFSIZE);
 	sprintf(search_str, "%s=%%%ds\\n", string, BUFSIZE - len-1);
 	if (1 == sscanf(line, search_str, &temp)) {
-		len = strnlen(temp, 4096);
+		len = strnlen(temp, 4095) + 1;
 		ret_buf = malloc(len);
 		strncpy(ret_buf, temp, len);
 		return ret_buf;
