Mercurial > cpython-lru_cache-weakref
diff Modules/getpath.c @ 49110:cd61d54fc8c0
Issue #3813: cannot lanch python.exe via symbolic link on cygwin.
readlink(2) can return non-null-terminated string.
Reviewed by Amaury Forgeot d'Arc.
| author | Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp> |
|---|---|
| date | Tue, 09 Sep 2008 13:56:11 +0000 |
| parents | 22a74eaf6b22 |
| children | cab4e2e484a2 |
line wrap: on
line diff
--- a/Modules/getpath.c Tue Sep 09 07:50:07 2008 +0000 +++ b/Modules/getpath.c Tue Sep 09 13:56:11 2008 +0000 @@ -183,6 +183,7 @@ errno = EINVAL; return -1; } + cbuf[res] = '\0'; /* buf will be null terminated */ r1 = mbstowcs(buf, cbuf, bufsiz); if (r1 == -1) { errno = EINVAL; @@ -559,8 +560,6 @@ wchar_t tmpbuffer[MAXPATHLEN+1]; int linklen = _Py_wreadlink(progpath, tmpbuffer, MAXPATHLEN); while (linklen != -1) { - /* It's not null terminated! */ - tmpbuffer[linklen] = '\0'; if (tmpbuffer[0] == SEP) /* tmpbuffer should never be longer than MAXPATHLEN, but extra check does not hurt */
