posix_getcwd(): limit to INT_MAX on Windows

It's more to fix a conversion warning during compilation, I don't think that
Windows support current working directory larger than 2 GB ...
This commit is contained in:
Victor Stinner 2016-03-14 18:07:53 +01:00
parent 3719779765
commit c44f70770b
1 changed files with 10 additions and 0 deletions

View File

@ -3320,12 +3320,22 @@ posix_getcwd(int use_bytes)
Py_BEGIN_ALLOW_THREADS
do {
buflen += chunk;
#ifdef MS_WINDOWS
if (buflen > INT_MAX) {
PyErr_NoMemory();
break;
}
#endif
tmpbuf = PyMem_RawRealloc(buf, buflen);
if (tmpbuf == NULL)
break;
buf = tmpbuf;
#ifdef MS_WINDOWS
cwd = getcwd(buf, (int)buflen);
#else
cwd = getcwd(buf, buflen);
#endif
} while (cwd == NULL && errno == ERANGE);
Py_END_ALLOW_THREADS