diff options
Diffstat (limited to 'sysdeps/posix/getcwd.c')
-rw-r--r-- | sysdeps/posix/getcwd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c index fe094b5a35..950ae613e7 100644 --- a/sysdeps/posix/getcwd.c +++ b/sysdeps/posix/getcwd.c @@ -135,6 +135,10 @@ extern void free (); # define memmove memcpy #endif /* Not ANSI_STRING. */ +#ifndef MAX +# define MAX(a, b) ((a) < (b) ? (b) : (a)) +#endif + #ifdef _LIBC # ifndef mempcpy # define mempcpy __mempcpy @@ -368,7 +372,7 @@ __getcwd (buf, size) { char *tmp; - size *= 2; + size = 2 * MAX (size, namlen); tmp = realloc (path, size); if (tmp == NULL) { |