mirror of
https://github.com/python/cpython.git
synced 2025-09-13 12:17:24 +00:00
_Py_wrealpath() requires the size of the output buffer
This commit is contained in:
parent
a4a759515e
commit
015f4d87ab
3 changed files with 6 additions and 4 deletions
|
@ -41,7 +41,8 @@ PyAPI_FUNC(int) _Py_wreadlink(
|
||||||
#ifdef HAVE_REALPATH
|
#ifdef HAVE_REALPATH
|
||||||
PyAPI_FUNC(wchar_t*) _Py_wrealpath(
|
PyAPI_FUNC(wchar_t*) _Py_wrealpath(
|
||||||
const wchar_t *path,
|
const wchar_t *path,
|
||||||
wchar_t *resolved_path);
|
wchar_t *resolved_path,
|
||||||
|
size_t resolved_path_size);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
|
PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
|
||||||
|
|
|
@ -321,7 +321,8 @@ _Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t bufsiz)
|
||||||
|
|
||||||
#ifdef HAVE_REALPATH
|
#ifdef HAVE_REALPATH
|
||||||
wchar_t*
|
wchar_t*
|
||||||
_Py_wrealpath(const wchar_t *path, wchar_t *resolved_path)
|
_Py_wrealpath(const wchar_t *path,
|
||||||
|
wchar_t *resolved_path, size_t resolved_path_size)
|
||||||
{
|
{
|
||||||
char *cpath;
|
char *cpath;
|
||||||
char cresolved_path[PATH_MAX];
|
char cresolved_path[PATH_MAX];
|
||||||
|
@ -336,7 +337,7 @@ _Py_wrealpath(const wchar_t *path, wchar_t *resolved_path)
|
||||||
PyMem_Free(cpath);
|
PyMem_Free(cpath);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
r = mbstowcs(resolved_path, cresolved_path, PATH_MAX);
|
r = mbstowcs(resolved_path, cresolved_path, resolved_path_size);
|
||||||
if (r == (size_t)-1 || r >= PATH_MAX) {
|
if (r == (size_t)-1 || r >= PATH_MAX) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -1742,7 +1742,7 @@ sys_update_path(int argc, wchar_t **argv)
|
||||||
#else /* All other filename syntaxes */
|
#else /* All other filename syntaxes */
|
||||||
if (_HAVE_SCRIPT_ARGUMENT(argc, argv)) {
|
if (_HAVE_SCRIPT_ARGUMENT(argc, argv)) {
|
||||||
#if defined(HAVE_REALPATH)
|
#if defined(HAVE_REALPATH)
|
||||||
if (_Py_wrealpath(argv0, fullpath)) {
|
if (_Py_wrealpath(argv0, fullpath, PATH_MAX)) {
|
||||||
argv0 = fullpath;
|
argv0 = fullpath;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue