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

Diff for /src/usr.bin/ssh/readconf.c between version 1.145 and 1.146

version 1.145, 2005/12/08 18:34:11 version 1.146, 2006/02/12 10:44:18
Line 304 
Line 304 
                     int *activep)                      int *activep)
 {  {
         char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, fwdarg[256];          char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, fwdarg[256];
         int opcode, *intptr, value, value2;          int opcode, *intptr, value, value2, scale;
           long long orig, val64;
         size_t len;          size_t len;
         Forward fwd;          Forward fwd;
   
Line 477 
Line 478 
                         fatal("%.200s line %d: Missing argument.", filename, linenum);                          fatal("%.200s line %d: Missing argument.", filename, linenum);
                 if (arg[0] < '0' || arg[0] > '9')                  if (arg[0] < '0' || arg[0] > '9')
                         fatal("%.200s line %d: Bad number.", filename, linenum);                          fatal("%.200s line %d: Bad number.", filename, linenum);
                 value = strtol(arg, &endofnumber, 10);                  orig = val64 = strtoll(arg, &endofnumber, 10);
                 if (arg == endofnumber)                  if (arg == endofnumber)
                         fatal("%.200s line %d: Bad number.", filename, linenum);                          fatal("%.200s line %d: Bad number.", filename, linenum);
                 switch (toupper(*endofnumber)) {                  switch (toupper(*endofnumber)) {
                   case '\0':
                           scale = 1;
                           break;
                 case 'K':                  case 'K':
                         value *= 1<<10;                          scale = 1<<10;
                         break;                          break;
                 case 'M':                  case 'M':
                         value *= 1<<20;                          scale = 1<<20;
                         break;                          break;
                 case 'G':                  case 'G':
                         value *= 1<<30;                          scale = 1<<30;
                         break;                          break;
                   default:
                           fatal("%.200s line %d: Invalid RekeyLimit suffix",
                               filename, linenum);
                 }                  }
                   val64 *= scale;
                   /* detect integer wrap and too-large limits */
                   if ((val64 / scale) != orig || val64 > INT_MAX)
                           fatal("%.200s line %d: RekeyLimit too large",
                               filename, linenum);
                   if (val64 < 16)
                           fatal("%.200s line %d: RekeyLimit too small",
                               filename, linenum);
                 if (*activep && *intptr == -1)                  if (*activep && *intptr == -1)
                         *intptr = value;                          *intptr = (int)val64;
                 break;                  break;
   
         case oIdentityFile:          case oIdentityFile:

Legend:
Removed from v.1.145  
changed lines
  Added in v.1.146