conf_copy_into must empty the entire target conf before filling it
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 15 Jul 2011 18:18:28 +0000 (18:18 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 15 Jul 2011 18:18:28 +0000 (18:18 +0000)
with the entries from the source one, otherwise add234 will keep
failing ("this key already exists"). Completely broke Plink, ahem.

git-svn-id: svn://svn.tartarus.org/sgt/putty@9218 cda61777-01e9-0310-a592-d414129be87e

conf.c

diff --git a/conf.c b/conf.c
index 89bf5c3..3268449 100644 (file)
--- a/conf.c
+++ b/conf.c
@@ -199,6 +199,8 @@ void conf_copy_into(Conf *newconf, Conf *oldconf)
     struct conf_entry *entry, *entry2;
     int i;
 
+    conf_clear(newconf);
+
     for (i = 0; (entry = index234(oldconf->tree, i)) != NULL; i++) {
        entry2 = snew(struct conf_entry);
        copy_key(&entry2->key, &entry->key);