1 diff -ruN Python-2.6.7-orig/Modules/posixmodule.c Python-2.6.7/Modules/posixmodule.c
   2 --- Python-2.6.7-orig/Modules/posixmodule.c     2010-07-24 10:05:19.000000000 +0000
   3 +++ Python-2.6.7/Modules/posixmodule.c  2012-02-15 20:20:39.697617975 +0000
   4 @@ -1997,6 +1997,8 @@
   5      char *res = NULL;
   6      PyObject *dynamic_return;
   7  
   8 +    int maxsize = pathconf(".", _PC_PATH_MAX);
   9 +
  10      Py_BEGIN_ALLOW_THREADS
  11      do {
  12          bufsize = bufsize + bufsize_incr;
  13 @@ -2013,7 +2015,7 @@
  14          if (res == NULL) {
  15              free(tmpbuf);
  16          }
  17 -    } while ((res == NULL) && (errno == ERANGE));
  18 +    } while ((res == NULL) && (errno == ERANGE) && (bufsize < maxsize));
  19      Py_END_ALLOW_THREADS
  20  
  21      if (res == NULL)