When looking for a local username on Windows, if we can get hold of the
[u/mdw/putty] / settings.c
index 7ecd561..9985e2d 100644 (file)
@@ -84,9 +84,13 @@ int get_remote_username(Config *cfg, char *user, size_t len)
        if (cfg->username_from_env) {
            /* Use local username. */
            char *luser = get_username();
-           strncpy(user, luser, len);
-           user[len-1] = '\0';
-           sfree(luser);
+           if (luser) {
+               strncpy(user, luser, len);
+               user[len-1] = '\0';
+               sfree(luser);
+           } else {
+               *user = '\0';
+           }
        } else {
            *user = '\0';
        }
@@ -695,13 +699,21 @@ void load_open_settings(void *sesskey, Config *cfg)
     gppfile(sesskey, "BellWaveFile", &cfg->bell_wavefile);
     gppi(sesskey, "BellOverload", 1, &cfg->bellovl);
     gppi(sesskey, "BellOverloadN", 5, &cfg->bellovl_n);
-    gppi(sesskey, "BellOverloadT", 2*TICKSPERSEC, &i);
+    gppi(sesskey, "BellOverloadT", 2*TICKSPERSEC
+#ifdef PUTTY_UNIX_H
+                                  *1000
+#endif
+                                  , &i);
     cfg->bellovl_t = i
 #ifdef PUTTY_UNIX_H
                    / 1000
 #endif
        ;
-    gppi(sesskey, "BellOverloadS", 5*TICKSPERSEC, &i);
+    gppi(sesskey, "BellOverloadS", 5*TICKSPERSEC
+#ifdef PUTTY_UNIX_H
+                                  *1000
+#endif
+                                  , &i);
     cfg->bellovl_s = i
 #ifdef PUTTY_UNIX_H
                    / 1000