autofs-5.1.8 - fix multi-mount check

From: Ian Kent <raven@themaw.net>

When checking if a mount location is a multi-mount after the first location
the next '-' or '/' indicates it's a multi-mount.

But the '-' can be part of a mount location and can follow a space leading
to incorrectly deciding the location is a multi-mount.

Signed-off-by: Ian Kent <raven@themaw.net>
---
 CHANGELOG           |    1 +
 modules/parse_sun.c |    9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG b/CHANGELOG
index a0f4b526..52943569 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -96,6 +96,7 @@
 - fix incorrect matching of cached wildcard key.
 - fix expire retry looping.
 - allow -null map in indirect maps.
+- fix multi-mount check.
 
 19/10/2021 autofs-5.1.8
 - add xdr_exports().
diff --git a/modules/parse_sun.c b/modules/parse_sun.c
index cb3e22a0..a5351fd0 100644
--- a/modules/parse_sun.c
+++ b/modules/parse_sun.c
@@ -787,7 +787,14 @@ static int check_is_multi(const char *mapent)
 		if (not_first_chunk) {
 			if (*p == '"')
 				p++;
-			if (*p == '/' || *p == '-') {
+			/*
+			 * Although an options string here would mean
+			 * we have a multi-mount we can't rely on it
+			 * since it's also valid in a mount location.
+			 */
+			if (*p == '-')
+				p++;
+			if (*p == '/') {
 				multi = 1;
 				break;
 			}
