In get_sesslist(), when freeing, set freed members to NULL on general
[u/mdw/putty] / settings.c
index aa234fe..f407385 100644 (file)
@@ -339,6 +339,7 @@ void save_open_settings(void *sesskey, int do_host, Config *cfg)
        write_setting_s(sesskey, buf, buf2);
     }
     write_setting_s(sesskey, "LineCodePage", cfg->line_codepage);
+    write_setting_i(sesskey, "CJKAmbigWide", cfg->cjk_ambig_wide);
     write_setting_i(sesskey, "UTF8Override", cfg->utf8_override);
     write_setting_s(sesskey, "Printer", cfg->printer);
     write_setting_i(sesskey, "CapsLockCyr", cfg->xlat_capslockcyr);
@@ -406,7 +407,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
     char prot[10];
 
     cfg->ssh_subsys = 0;              /* FIXME: load this properly */
-    cfg->remote_cmd_ptr = cfg->remote_cmd;
+    cfg->remote_cmd_ptr = NULL;
     cfg->remote_cmd_ptr2 = NULL;
 
     if (do_host) {
@@ -666,6 +667,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
      */
     gpps(sesskey, "LineCodePage", "", cfg->line_codepage,
         sizeof(cfg->line_codepage));
+    gppi(sesskey, "CJKAmbigWide", 0, &cfg->cjk_ambig_wide);
     gppi(sesskey, "UTF8Override", 1, &cfg->utf8_override);
     gpps(sesskey, "Printer", "", cfg->printer, sizeof(cfg->printer));
     gppi (sesskey, "CapsLockCyr", 0, &cfg->xlat_capslockcyr);
@@ -816,5 +818,7 @@ void get_sesslist(struct sesslist *list, int allocate)
     } else {
        sfree(list->buffer);
        sfree(list->sessions);
+       list->buffer = NULL;
+       list->sessions = NULL;
     }
 }