if (s) {
*s = L'\0';
}
- path2 = _Py_normpath(_Py_join_relfile(path, resolved), -1);
+ path2 = _Py_join_relfile(path, resolved);
+ if (path2) {
+ path2 = _Py_normpath(path2, -1);
+ }
PyMem_RawFree((void *)path);
path = path2;
}
}
assert(wcslen(dirname) < MAXPATHLEN);
assert(wcslen(relfile) < MAXPATHLEN - wcslen(dirname));
- join_relfile(filename, bufsize, dirname, relfile);
+ if (join_relfile(filename, bufsize, dirname, relfile) < 0) {
+ PyMem_RawFree(filename);
+ return NULL;
+ }
return filename;
}
wchar_t *
_Py_normpath(wchar_t *path, Py_ssize_t size)
{
+ assert(path != NULL);
if (!path[0] || size == 0) {
return path;
}