[BACK]Return to getcwd.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libc / gen

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libc/gen/getcwd.c between version 1.32 and 1.33

version 1.32, 2003/08/07 16:42:49 version 1.33, 2005/01/06 00:07:41
Line 222  getcwd(pt, size)
Line 222  getcwd(pt, size)
         ino_t root_ino;          ino_t root_ino;
         size_t ptsize, upsize;          size_t ptsize, upsize;
         int save_errno;          int save_errno;
         char *ept, *eup, *up;          char *ept, *eup, *up, *nup;
         size_t dlen;          size_t dlen;
   
         /*          /*
Line 246  getcwd(pt, size)
Line 246  getcwd(pt, size)
         *bpt = '\0';          *bpt = '\0';
   
         /*          /*
          * Allocate bytes (1024 - malloc space) for the string of "../"'s.           * Allocate bytes for the string of "../"'s.
          * Should always be enough (it's 340 levels).  If it's not, allocate           * Should always be enough (it's 340 levels).  If it's not, allocate
          * as necessary.  Special case the first stat, it's ".", not "..".           * as necessary.  Special case the first stat, it's ".", not "..".
          */           */
         if ((up = malloc(upsize = 1024 - 4)) == NULL)          if ((up = malloc(upsize = MAXPATHLEN)) == NULL)
                 goto err;                  goto err;
         eup = up + MAXPATHLEN;          eup = up + upsize;
         bup = up;          bup = up;
         up[0] = '.';          up[0] = '.';
         up[1] = '\0';          up[1] = '\0';
Line 292  getcwd(pt, size)
Line 292  getcwd(pt, size)
                  * as necessary.  Max length is 3 for "../", the largest                   * as necessary.  Max length is 3 for "../", the largest
                  * possible component name, plus a trailing NULL.                   * possible component name, plus a trailing NULL.
                  */                   */
                 if (bup + 3  + MAXNAMLEN + 1 >= eup) {                  if (bup + 3 + MAXNAMLEN + 1 >= eup) {
                         if ((up = realloc(up, upsize *= 2)) == NULL)                          if ((nup = realloc(up, upsize *= 2)) == NULL)
                                 goto err;                                  goto err;
                         bup = up;                          bup = nup + (buf - up);
                           up = nup;
                         eup = up + upsize;                          eup = up + upsize;
                 }                  }
                 *bup++ = '.';                  *bup++ = '.';

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33

CVSweb <webmaster@jp.NetBSD.org>