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)