6576171 ipsec_kmc_map file processing is broken
authordanmcd
Mon, 30 Jul 2007 10:32:47 -0700
changeset 4757 b32d92764a7f
parent 4756 b58955f1fa1d
child 4758 dba713bbfd96
6576171 ipsec_kmc_map file processing is broken
usr/src/lib/libipsecutil/common/ipsec_util.c
--- a/usr/src/lib/libipsecutil/common/ipsec_util.c	Mon Jul 30 07:55:03 2007 -0700
+++ b/usr/src/lib/libipsecutil/common/ipsec_util.c	Mon Jul 30 10:32:47 2007 -0700
@@ -832,7 +832,7 @@
 kmc_insert_mapping(char *label)
 {
 	FILE	*map;
-	char	linebuf[MAXLINESIZE];
+	char	linebuf[IBUF_SIZE];
 	char	*cur_label;
 	int	max_cookie = 0, cur_cookie, rtn_cookie;
 	int	rtnerr = 0;
@@ -846,6 +846,10 @@
 
 	while (fgets(linebuf, sizeof (linebuf), map) != NULL) {
 
+		/* Skip blank lines, which often come near EOF. */
+		if (strlen(linebuf) == 0)
+			continue;
+
 		if (kmc_parse_line(linebuf, &cur_cookie, &cur_label) < 0) {
 			rtnerr = EINVAL;
 			goto error;
@@ -889,7 +893,7 @@
 kmc_lookup_by_cookie(int cookie)
 {
 	FILE		*map;
-	static char	linebuf[MAXLINESIZE];
+	static char	linebuf[IBUF_SIZE];
 	char		*cur_label;
 	int		cur_cookie;