Module Name:    src
Committed By:   tkusumi
Date:           Sat Nov 16 12:21:06 UTC 2019

Modified Files:
        src/usr.sbin/autofs: common.c

Log Message:
autofs: Fix segfault that could occur on "automount -LL"


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/autofs/common.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/autofs/common.c
diff -u src/usr.sbin/autofs/common.c:1.2 src/usr.sbin/autofs/common.c:1.3
--- src/usr.sbin/autofs/common.c:1.2	Sat Nov 16 11:56:29 2019
+++ src/usr.sbin/autofs/common.c	Sat Nov 16 12:21:06 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: common.c,v 1.2 2019/11/16 11:56:29 tkusumi Exp $	*/
+/*	$NetBSD: common.c,v 1.3 2019/11/16 12:21:06 tkusumi Exp $	*/
 
 /*-
  * Copyright (c) 2017 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  * $FreeBSD: head/usr.sbin/autofs/common.c 303527 2016-07-30 01:10:05Z bapt $
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: common.c,v 1.2 2019/11/16 11:56:29 tkusumi Exp $");
+__RCSID("$NetBSD: common.c,v 1.3 2019/11/16 12:21:06 tkusumi Exp $");
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -357,7 +357,7 @@ expand_ampersand(char *string, const cha
 		 * of characters before the '&'.
 		 */
 		before_len = i;
-		//assert(i + 1 < strlen(string));
+		//assert(i < strlen(string));
 
 		ret = asprintf(&expanded, "%.*s%s%s",
 		    (int)before_len, string, key, string + before_len + 1);
@@ -372,6 +372,8 @@ expand_ampersand(char *string, const cha
 		 */
 		string = expanded;
 		i = before_len + strlen(key);
+		if (i == strlen(string))
+			break;
 		backslashed = false;
 		//assert(i < strlen(string));
 	}

Reply via email to