Add a bounds check in the word-by-word selection code to prevent
[sgt/putty] / rlogin.c
index a79576e..fecc9d4 100644 (file)
--- a/rlogin.c
+++ b/rlogin.c
@@ -237,7 +237,7 @@ static const char *rlogin_init(void *frontend_handle, void **backend_handle,
      * in which case we prompt for it and may end up deferring doing
      * anything else until the local prompt mechanism returns.
      */
-    if ((ruser = get_remote_username(conf)) == NULL) {
+    if ((ruser = get_remote_username(conf)) != NULL) {
         rlogin_startup(rlogin, ruser);
         sfree(ruser);
     } else {
@@ -246,8 +246,7 @@ static const char *rlogin_init(void *frontend_handle, void **backend_handle,
         rlogin->prompt = new_prompts(rlogin->frontend);
         rlogin->prompt->to_server = TRUE;
         rlogin->prompt->name = dupstr("Rlogin login name");
-        /* 512 is an arbitrary limit :-( */
-        add_prompt(rlogin->prompt, dupstr("rlogin username: "), TRUE, 512); 
+        add_prompt(rlogin->prompt, dupstr("rlogin username: "), TRUE); 
         ret = get_userpass_input(rlogin->prompt, NULL, 0);
         if (ret >= 0) {
             rlogin_startup(rlogin, rlogin->prompt->prompts[0]->result);