mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
bpo-38020: Fixes crash in os.readlink() on Windows (GH-15663)
This commit is contained in:
parent
0cf832a9ef
commit
993ac92418
2 changed files with 4 additions and 2 deletions
|
|
@ -0,0 +1,2 @@
|
|||
Fixes potential crash when calling :func:`os.readlink` (or indirectly
|
||||
through :func:`~os.path.realpath`) on a file that is not a supported link.
|
||||
|
|
@ -7818,7 +7818,7 @@ os_readlink_impl(PyObject *module, path_t *path, int dir_fd)
|
|||
HANDLE reparse_point_handle;
|
||||
char target_buffer[_Py_MAXIMUM_REPARSE_DATA_BUFFER_SIZE];
|
||||
_Py_REPARSE_DATA_BUFFER *rdb = (_Py_REPARSE_DATA_BUFFER *)target_buffer;
|
||||
PyObject *result;
|
||||
PyObject *result = NULL;
|
||||
|
||||
/* First get a handle to the reparse point */
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
|
|
@ -7872,7 +7872,7 @@ os_readlink_impl(PyObject *module, path_t *path, int dir_fd)
|
|||
name[1] = L'\\';
|
||||
}
|
||||
result = PyUnicode_FromWideChar(name, nameLen);
|
||||
if (path->narrow) {
|
||||
if (result && path->narrow) {
|
||||
Py_SETREF(result, PyUnicode_EncodeFSDefault(result));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue