[BACK]Return to monitor.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/monitor.c between version 1.12 and 1.13

version 1.12, 2002/06/04 19:42:35 version 1.13, 2002/06/04 19:53:40
Line 124 
Line 124 
 static u_char *hostbased_cuser = NULL;  static u_char *hostbased_cuser = NULL;
 static u_char *hostbased_chost = NULL;  static u_char *hostbased_chost = NULL;
 static char *auth_method = "unknown";  static char *auth_method = "unknown";
   static int session_id2_len = 0;
   static u_char *session_id2 = NULL;
   
 struct mon_table {  struct mon_table {
         enum monitor_reqtype type;          enum monitor_reqtype type;
Line 437 
Line 439 
         if (datlen != 20)          if (datlen != 20)
                 fatal("%s: data length incorrect: %d", __FUNCTION__, datlen);                  fatal("%s: data length incorrect: %d", __FUNCTION__, datlen);
   
           /* save session id, it will be passed on the first call */
           if (session_id2_len == 0) {
                   session_id2_len = datlen;
                   session_id2 = xmalloc(session_id2_len);
                   memcpy(session_id2, p, session_id2_len);
           }
   
         if ((key = get_hostkey_by_index(keyid)) == NULL)          if ((key = get_hostkey_by_index(keyid)) == NULL)
                 fatal("%s: no hostkey from index %d", __FUNCTION__, keyid);                  fatal("%s: no hostkey from index %d", __FUNCTION__, keyid);
         if (key_sign(key, &signature, &siglen, p, datlen) < 0)          if (key_sign(key, &signature, &siglen, p, datlen) < 0)
Line 781 
Line 790 
         u_char *p;          u_char *p;
         u_int len;          u_int len;
         int fail = 0;          int fail = 0;
         int session_id2_len = 20 /*XXX should get from [net] */;  
   
         buffer_init(&b);          buffer_init(&b);
         buffer_append(&b, data, datalen);          buffer_append(&b, data, datalen);
   
         if (datafellows & SSH_OLD_SESSIONID) {          if (datafellows & SSH_OLD_SESSIONID) {
                   p = buffer_ptr(&b);
                   len = buffer_len(&b);
                   if ((session_id2 == NULL) ||
                       (len < session_id2_len) ||
                       (memcmp(p, session_id2, session_id2_len) != 0))
                           fail++;
                 buffer_consume(&b, session_id2_len);                  buffer_consume(&b, session_id2_len);
         } else {          } else {
                 xfree(buffer_get_string(&b, &len));                  p = buffer_get_string(&b, &len);
                 if (len != session_id2_len)                  if ((session_id2 == NULL) ||
                       (len != session_id2_len) ||
                       (memcmp(p, session_id2, session_id2_len) != 0))
                         fail++;                          fail++;
                   xfree(p);
         }          }
         if (buffer_get_char(&b) != SSH2_MSG_USERAUTH_REQUEST)          if (buffer_get_char(&b) != SSH2_MSG_USERAUTH_REQUEST)
                 fail++;                  fail++;
Line 830 
Line 847 
         u_char *p;          u_char *p;
         u_int len;          u_int len;
         int fail = 0;          int fail = 0;
         int session_id2_len = 20 /*XXX should get from [net] */;  
   
         buffer_init(&b);          buffer_init(&b);
         buffer_append(&b, data, datalen);          buffer_append(&b, data, datalen);
   
         xfree(buffer_get_string(&b, &len));          p = buffer_get_string(&b, &len);
         if (len != session_id2_len)          if ((session_id2 == NULL) ||
               (len != session_id2_len) ||
               (memcmp(p, session_id2, session_id2_len) != 0))
                 fail++;                  fail++;
           xfree(p);
   
         if (buffer_get_char(&b) != SSH2_MSG_USERAUTH_REQUEST)          if (buffer_get_char(&b) != SSH2_MSG_USERAUTH_REQUEST)
                 fail++;                  fail++;
         p = buffer_get_string(&b, NULL);          p = buffer_get_string(&b, NULL);
Line 1296 
Line 1316 
         kex = xmalloc(sizeof(*kex));          kex = xmalloc(sizeof(*kex));
         memset(kex, 0, sizeof(*kex));          memset(kex, 0, sizeof(*kex));
         kex->session_id = buffer_get_string(m, &kex->session_id_len);          kex->session_id = buffer_get_string(m, &kex->session_id_len);
           if ((session_id2 == NULL) ||
               (kex->session_id_len != session_id2_len) ||
               (memcmp(kex->session_id, session_id2, session_id2_len) != 0))
                   fatal("mm_get_get: internal error: bad session id");
         kex->we_need = buffer_get_int(m);          kex->we_need = buffer_get_int(m);
         kex->server = 1;          kex->server = 1;
         kex->hostkey_type = buffer_get_int(m);          kex->hostkey_type = buffer_get_int(m);

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13