Bug #1524310: Properly report errors from FindNextFile in os.listdir.

Will backport to 2.4.
This commit is contained in:
Martin v. Löwis 2006-07-24 12:54:17 +00:00
parent d22968af17
commit 982e9fea0a
2 changed files with 19 additions and 0 deletions

View File

@ -12,6 +12,8 @@ What's New in Python 2.5 release candidate 1?
Core and builtins
-----------------
- Bug #1524310: Properly report errors from FindNextFile in os.listdir.
- Patch #1232023: Stop including current directory in search
path on Windows.

View File

@ -1862,6 +1862,15 @@ posix_listdir(PyObject *self, PyObject *args)
Py_BEGIN_ALLOW_THREADS
result = FindNextFileW(hFindFile, &wFileData);
Py_END_ALLOW_THREADS
/* FindNextFile sets error to ERROR_NO_MORE_FILES if
it got to the end of the directory. */
if (!result && GetLastError() != ERROR_NO_MORE_FILES) {
Py_DECREF(d);
win32_error_unicode("FindNextFileW", wnamebuf);
FindClose(hFindFile);
free(wnamebuf);
return NULL;
}
} while (result == TRUE);
if (FindClose(hFindFile) == FALSE) {
@ -1921,6 +1930,14 @@ posix_listdir(PyObject *self, PyObject *args)
Py_BEGIN_ALLOW_THREADS
result = FindNextFile(hFindFile, &FileData);
Py_END_ALLOW_THREADS
/* FindNextFile sets error to ERROR_NO_MORE_FILES if
it got to the end of the directory. */
if (!result && GetLastError() != ERROR_NO_MORE_FILES) {
Py_DECREF(d);
win32_error("FindNextFile", namebuf);
FindClose(hFindFile);
return NULL;
}
} while (result == TRUE);
if (FindClose(hFindFile) == FALSE) {