components/gtar/patches/xgetcwd.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Tue, 24 Jul 2012 10:14:00 -0700
changeset 927 19eda0ce91e0
parent 154 55225e51a9cb
permissions -rw-r--r--
7186425 potential stack corruption in bash <= 4.2-033

--- tar-1.26/gnu/xgetcwd.c.orig	Thu Mar 17 12:53:26 2011
+++ tar-1.26/gnu/xgetcwd.c	Thu Mar 17 12:53:35 2011
@@ -26,6 +26,7 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include <limits.h>
 
 #include "xalloc.h"
 
@@ -36,7 +37,14 @@
 char *
 xgetcwd (void)
 {
-  char *cwd = getcwd (NULL, 0);
+  char *cwd;
+#ifdef HAVE_PARTLY_WORKING_GETCWD
+  cwd = getcwd (NULL, 0);
+#else
+  cwd = malloc(PATH_MAX);
+  if (cwd)
+    getcwd (cwd, PATH_MAX);
+#endif
   if (! cwd && errno == ENOMEM)
     xalloc_die ();
   return cwd;