aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/posix/getcwd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/posix/getcwd.c')
-rw-r--r--sysdeps/posix/getcwd.c6
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)
{