]> git.pld-linux.org Git - packages/openssh.git/blobdiff - connect.c
- drop sshagentsh bcond; switch to subpackages
[packages/openssh.git] / connect.c
index 97682feb3b2b86644c81d49ce6c4e756ab6bc974..58b769c20bb42f757e7b9c87424713a55bc2aa6d 100644 (file)
--- a/connect.c
+++ b/connect.c
 static char *vcid = "$Id$";
 #endif
 
+/* Microsoft Visual C/C++ has _snprintf() and _vsnprintf() */
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#define vsnprintf _vsnprintf
+#endif
 
 /* consider Borland C */
 #ifdef __BORLANDC__
@@ -550,7 +555,7 @@ expand_host_and_port (const char *fmt, const char *host, int port)
                src += 2;
                break;
            case 'p':
-               sprintf (dst, "%d", port);
+               snprintf (dst, len, "%d", port);
                src += 2;
                break;
            default:
@@ -685,7 +690,7 @@ find_parameter_item(const char* name)
 {
     int i;
     for( i = 0; parameter_table[i].name != NULL; i++ ){
-        if ( strncmp(name, parameter_table[i].name, strlen(parameter_table[i].name)) == 0 )
+        if ( strcmp(name, parameter_table[i].name) == 0 )
             return &parameter_table[i];
     }
     return NULL;
@@ -745,13 +750,13 @@ read_parameter_file_1(const char* name)
 void
 read_parameter_file(void)
 {
-#ifndef _WIN32
+#if !defined(_WIN32) || defined(cygwin)
     char *name;
     struct passwd *pw;
 #endif
 
     read_parameter_file_1(PARAMETER_FILE);
-#ifndef _WIN32
+#if !defined(_WIN32) || defined(cygwin)
     pw = getpwuid(getuid());
     if ( pw == NULL )
         fatal("getpwuid() failed for uid: %d\n", getuid());
@@ -1220,7 +1225,7 @@ set_relay( int method, char *spec )
     read_parameter_file();
     initialize_direct_addr();
     if (n_direct_addr_list == 0) {
-        debug ("(none)\n");
+        debug ("No direct address are specified.\n");
     } else {
         int i;
         for ( i=0; i<n_direct_addr_list; i++ ) {
@@ -1716,7 +1721,9 @@ report_text( char *prefix, char *buf )
                 if ( isprint(*buf) ) {
                     *tmp++ = *buf;
                 } else {
-                    sprintf( tmp, "\\x%02X", (unsigned char)*buf);
+                   int consumed = tmp - work;
+                    snprintf( tmp, sizeof(work)-consumed,
+                             "\\x%02X", (unsigned char)*buf);
                     tmp += strlen(tmp);
                 }
             }
@@ -1873,7 +1880,7 @@ readpass( const char* prompt, ...)
     static char buf[1000];                      /* XXX, don't be fix length */
     va_list args;
     va_start(args, prompt);
-    vsprintf(buf, prompt, args);
+    vsnprintf(buf, sizeof(buf), prompt, args);
     va_end(args);
 
     if ( getparam(ENV_SSH_ASKPASS)
@@ -1884,8 +1891,9 @@ readpass( const char* prompt, ...)
         /* use ssh-askpass to get password */
         FILE *fp;
         char *askpass = getparam(ENV_SSH_ASKPASS), *cmd;
-        cmd = xmalloc(strlen(askpass) +1 +1 +strlen(buf) +1);
-        sprintf(cmd, "%s \"%s\"", askpass, buf);
+       int cmd_size = strlen(askpass) +1 +1 +strlen(buf) +1 +1;
+        cmd = xmalloc(cmd_size);
+        snprintf(cmd, cmd_size, "%s \"%s\"", askpass, buf);
         fp = popen(cmd, "r");
         free(cmd);
         if ( fp == NULL )
@@ -2210,7 +2218,7 @@ sendf(SOCKET s, const char *fmt,...)
 
     va_list args;
     va_start( args, fmt );
-    vsprintf( buf, fmt, args );
+    vsnprintf( buf, sizeof(buf), fmt, args );
     va_end( args );
 
     report_text(">>>", buf);
@@ -2279,7 +2287,7 @@ basic_auth (SOCKET s)
 
     len = strlen(user)+strlen(pass)+1;
     userpass = xmalloc(len+1);
-    sprintf(userpass,"%s:%s", user, pass);
+    snprintf(userpass, len+1, "%s:%s", user, pass);
     memset (pass, 0, strlen(pass));
     cred = make_base64_string(userpass);
     memset (userpass, 0, len);
This page took 0.051988 seconds and 4 git commands to generate.