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

Diff for /src/usr.bin/ssh/channels.c between version 1.304 and 1.305

version 1.304, 2010/05/14 23:29:23 version 1.305, 2010/06/25 07:14:45
Line 110 
Line 110 
 } ForwardPermission;  } ForwardPermission;
   
 /* List of all permitted host/port pairs to connect by the user. */  /* List of all permitted host/port pairs to connect by the user. */
 static ForwardPermission permitted_opens[SSH_MAX_FORWARDS_PER_DIRECTION];  static ForwardPermission *permitted_opens = NULL;
   
 /* List of all permitted host/port pairs to connect by the admin. */  /* List of all permitted host/port pairs to connect by the admin. */
 static ForwardPermission permitted_adm_opens[SSH_MAX_FORWARDS_PER_DIRECTION];  static ForwardPermission *permitted_adm_opens = NULL;
   
 /* Number of permitted host/port pairs in the array permitted by the user. */  /* Number of permitted host/port pairs in the array permitted by the user. */
 static int num_permitted_opens = 0;  static int num_permitted_opens = 0;
Line 2810 
Line 2810 
 {  {
         int type, success = 0;          int type, success = 0;
   
         /* Record locally that connection to this host/port is permitted. */  
         if (num_permitted_opens >= SSH_MAX_FORWARDS_PER_DIRECTION)  
                 fatal("channel_request_remote_forwarding: too many forwards");  
   
         /* Send the forward request to the remote side. */          /* Send the forward request to the remote side. */
         if (compat20) {          if (compat20) {
                 const char *address_to_bind;                  const char *address_to_bind;
Line 2863 
Line 2859 
                 }                  }
         }          }
         if (success) {          if (success) {
                   /* Record that connection to this host/port is permitted. */
                   permitted_opens = xrealloc(permitted_opens,
                       num_permitted_opens + 1, sizeof(*permitted_opens));
                 permitted_opens[num_permitted_opens].host_to_connect = xstrdup(host_to_connect);                  permitted_opens[num_permitted_opens].host_to_connect = xstrdup(host_to_connect);
                 permitted_opens[num_permitted_opens].port_to_connect = port_to_connect;                  permitted_opens[num_permitted_opens].port_to_connect = port_to_connect;
                 permitted_opens[num_permitted_opens].listen_port = listen_port;                  permitted_opens[num_permitted_opens].listen_port = listen_port;
Line 2958 
Line 2957 
 void  void
 channel_add_permitted_opens(char *host, int port)  channel_add_permitted_opens(char *host, int port)
 {  {
         if (num_permitted_opens >= SSH_MAX_FORWARDS_PER_DIRECTION)  
                 fatal("channel_add_permitted_opens: too many forwards");  
         debug("allow port forwarding to host %s port %d", host, port);          debug("allow port forwarding to host %s port %d", host, port);
   
           permitted_opens = xrealloc(permitted_opens,
               num_permitted_opens + 1, sizeof(*permitted_opens));
         permitted_opens[num_permitted_opens].host_to_connect = xstrdup(host);          permitted_opens[num_permitted_opens].host_to_connect = xstrdup(host);
         permitted_opens[num_permitted_opens].port_to_connect = port;          permitted_opens[num_permitted_opens].port_to_connect = port;
         num_permitted_opens++;          num_permitted_opens++;
Line 2972 
Line 2971 
 int  int
 channel_add_adm_permitted_opens(char *host, int port)  channel_add_adm_permitted_opens(char *host, int port)
 {  {
         if (num_adm_permitted_opens >= SSH_MAX_FORWARDS_PER_DIRECTION)  
                 fatal("channel_add_adm_permitted_opens: too many forwards");  
         debug("config allows port forwarding to host %s port %d", host, port);          debug("config allows port forwarding to host %s port %d", host, port);
   
           permitted_adm_opens = xrealloc(permitted_adm_opens,
               num_adm_permitted_opens + 1, sizeof(*permitted_adm_opens));
         permitted_adm_opens[num_adm_permitted_opens].host_to_connect          permitted_adm_opens[num_adm_permitted_opens].host_to_connect
              = xstrdup(host);               = xstrdup(host);
         permitted_adm_opens[num_adm_permitted_opens].port_to_connect = port;          permitted_adm_opens[num_adm_permitted_opens].port_to_connect = port;
Line 2990 
Line 2989 
         for (i = 0; i < num_permitted_opens; i++)          for (i = 0; i < num_permitted_opens; i++)
                 if (permitted_opens[i].host_to_connect != NULL)                  if (permitted_opens[i].host_to_connect != NULL)
                         xfree(permitted_opens[i].host_to_connect);                          xfree(permitted_opens[i].host_to_connect);
           if (num_permitted_opens > 0) {
                   xfree(permitted_opens);
                   permitted_opens = NULL;
           }
         num_permitted_opens = 0;          num_permitted_opens = 0;
 }  }
   
Line 3001 
Line 3004 
         for (i = 0; i < num_adm_permitted_opens; i++)          for (i = 0; i < num_adm_permitted_opens; i++)
                 if (permitted_adm_opens[i].host_to_connect != NULL)                  if (permitted_adm_opens[i].host_to_connect != NULL)
                         xfree(permitted_adm_opens[i].host_to_connect);                          xfree(permitted_adm_opens[i].host_to_connect);
           if (num_adm_permitted_opens > 0) {
                   xfree(permitted_adm_opens);
                   permitted_adm_opens = NULL;
           }
         num_adm_permitted_opens = 0;          num_adm_permitted_opens = 0;
 }  }
   

Legend:
Removed from v.1.304  
changed lines
  Added in v.1.305