From 2ddf7aed96507a54c529355567d663f31aeef92e Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 7 Oct 2010 11:06:49 +0000 Subject: _wrealpath() and _Py_wreadlink() support surrogates (PEP 383) Use _Py_wchar2char() to support surrogate characters in the input path. --- Python/sysmodule.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Python/sysmodule.c') diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 97809d27b0..e95a91f042 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1661,16 +1661,17 @@ makeargvobject(int argc, wchar_t **argv) static wchar_t* _wrealpath(const wchar_t *path, wchar_t *resolved_path) { - char cpath[PATH_MAX]; + char *cpath; char cresolved_path[PATH_MAX]; char *res; size_t r; - r = wcstombs(cpath, path, PATH_MAX); - if (r == (size_t)-1 || r >= PATH_MAX) { + cpath = _Py_wchar2char(path); + if (cpath == NULL) { errno = EINVAL; return NULL; } res = realpath(cpath, cresolved_path); + PyMem_Free(cpath); if (res == NULL) return NULL; r = mbstowcs(resolved_path, cresolved_path, PATH_MAX); -- cgit v1.2.1