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

Diff for /src/usr.bin/ssh/misc.c between version 1.23.2.1 and 1.23.2.2

version 1.23.2.1, 2004/08/19 04:13:26 version 1.23.2.2, 2005/03/10 17:15:04
Line 269 
Line 269 
         return total;          return total;
 }  }
   
   /*
    * Search for next delimiter between hostnames/addresses and ports.
    * Argument may be modified (for termination).
    * Returns *cp if parsing succeeds.
    * *cp is set to the start of the next delimiter, if one was found.
    * If this is the last field, *cp is set to NULL.
    */
 char *  char *
   hpdelim(char **cp)
   {
           char *s, *old;
   
           if (cp == NULL || *cp == NULL)
                   return NULL;
   
           old = s = *cp;
           if (*s == '[') {
                   if ((s = strchr(s, ']')) == NULL)
                           return NULL;
                   else
                           s++;
           } else if ((s = strpbrk(s, ":/")) == NULL)
                   s = *cp + strlen(*cp); /* skip to end (see first case below) */
   
           switch (*s) {
           case '\0':
                   *cp = NULL;     /* no more fields*/
                   break;
   
           case ':':
           case '/':
                   *s = '\0';      /* terminate */
                   *cp = s + 1;
                   break;
   
           default:
                   return NULL;
           }
   
           return old;
   }
   
   char *
 cleanhostname(char *host)  cleanhostname(char *host)
 {  {
         if (*host == '[' && host[strlen(host) - 1] == ']') {          if (*host == '[' && host[strlen(host) - 1] == ']') {
Line 325 
Line 367 
         args->nalloc = nalloc;          args->nalloc = nalloc;
         args->list[args->num++] = xstrdup(buf);          args->list[args->num++] = xstrdup(buf);
         args->list[args->num] = NULL;          args->list[args->num] = NULL;
   }
   
   /*
    * Read an entire line from a public key file into a static buffer, discarding
    * lines that exceed the buffer size.  Returns 0 on success, -1 on failure.
    */
   int
   read_keyfile_line(FILE *f, const char *filename, char *buf, size_t bufsz,
      u_long *lineno)
   {
           while (fgets(buf, bufsz, f) != NULL) {
                   (*lineno)++;
                   if (buf[strlen(buf) - 1] == '\n' || feof(f)) {
                           return 0;
                   } else {
                           debug("%s: %s line %lu exceeds size limit", __func__,
                               filename, *lineno);
                           /* discard remainder of line */
                           while(fgetc(f) != '\n' && !feof(f))
                                   ;       /* nothing */
                   }
           }
           return -1;
 }  }

Legend:
Removed from v.1.23.2.1  
changed lines
  Added in v.1.23.2.2