autofs-5.1.9 - fix some fields not copied in dup_defaults_entry()

From: Victor Beumker <vb@math.uni-bonn.de>

Fix some fields are not copied when duplicating the amd defaults entry.

Fixes: 4cfefdcb1bad ("autofs-5.1.3 - add amd mount type program mount support")
Signed-off-by: Victor Beumker <vb@math.uni-bonn.de>
Signed-off-by: Ian Kent <raven@themaw.net>
---
 CHANGELOG           |    1 +
 modules/parse_amd.c |   25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/CHANGELOG b/CHANGELOG
index a23645139..04ac370e9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -85,6 +85,7 @@
 - Fix masks in parse_sub.c, so that hosts are correctly matched.
 - fix fields not freed in clear_amd_entry().
 - initialise fields after free in clear_amd_entry().
+- fix some fields not copied in dup_defaults_entry().
 
 02/11/2023 autofs-5.1.9
 - fix kernel mount status notification.
diff --git a/modules/parse_amd.c b/modules/parse_amd.c
index 9ecd33eae..0f68ade3a 100644
--- a/modules/parse_amd.c
+++ b/modules/parse_amd.c
@@ -1970,6 +1970,13 @@ static struct amd_entry *dup_defaults_entry(struct amd_entry *defaults)
 	memset(entry, 0, sizeof(struct amd_entry));
 
 	entry->flags = defaults->flags;
+	entry->cache_opts = defaults->cache_opts;
+
+	if (defaults->path) {
+		tmp = strdup(defaults->path);
+		if (tmp)
+			entry->path = tmp;
+	}
 
 	if (defaults->type) {
 		tmp = strdup(defaults->type);
@@ -1995,6 +2002,24 @@ static struct amd_entry *dup_defaults_entry(struct amd_entry *defaults)
 			entry->fs = tmp;
 	}
 
+	if (defaults->sublink) {
+		tmp = strdup(defaults->sublink);
+		if (tmp)
+			entry->sublink = tmp;
+	}
+
+	if (defaults->mount) {
+		tmp = strdup(defaults->mount);
+		if (tmp)
+			entry->mount = tmp;
+	}
+
+	if (defaults->umount) {
+		tmp = strdup(defaults->umount);
+		if (tmp)
+			entry->umount = tmp;
+	}
+
 	/* These shouldn't be blank in a defaults entry but ... */
 
 	if (defaults->rfs && *defaults->rfs) {
