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

Diff for /src/usr.bin/ssh/session.c between version 1.297 and 1.298

version 1.297, 2018/06/06 18:23:32 version 1.298, 2018/06/06 18:29:18
Line 784 
Line 784 
         const char *filename)          const char *filename)
 {  {
         FILE *f;          FILE *f;
         char buf[4096];          char *line = NULL, *cp, *value;
         char *cp, *value;          size_t linesize = 0;
         u_int lineno = 0;          u_int lineno = 0;
   
         f = fopen(filename, "r");          f = fopen(filename, "r");
         if (!f)          if (!f)
                 return;                  return;
   
         while (fgets(buf, sizeof(buf), f)) {          while (getline(&line, &linesize, f) != -1) {
                 if (++lineno > 1000)                  if (++lineno > 1000)
                         fatal("Too many lines in environment file %s", filename);                          fatal("Too many lines in environment file %s", filename);
                 for (cp = buf; *cp == ' ' || *cp == '\t'; cp++)                  for (cp = line; *cp == ' ' || *cp == '\t'; cp++)
                         ;                          ;
                 if (!*cp || *cp == '#' || *cp == '\n')                  if (!*cp || *cp == '#' || *cp == '\n')
                         continue;                          continue;
Line 816 
Line 816 
                 value++;                  value++;
                 child_set_env(env, envsize, cp, value);                  child_set_env(env, envsize, cp, value);
         }          }
           free(line);
         fclose(f);          fclose(f);
 }  }
   

Legend:
Removed from v.1.297  
changed lines
  Added in v.1.298