#endif
#if defined(TSRM_WIN32)
{
- char *dummy = NULL;
int new_path_length;
- new_path_length = GetLongPathName(path, dummy, 0) + 1;
+ new_path_length = GetLongPathName(path, NULL, 0);
if (new_path_length == 0) {
return 1;
}
+
+ /* GetLongPathName already counts the \0 */
new_path = (char *) malloc(new_path_length);
if (!new_path) {
return 1;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
- virtual_file_ex(&new_state, path, NULL, 1);
+ if (virtual_file_ex(&new_state, path, NULL, 1)) {
+ return -1;
+ }
retval = stat(new_state.cwd, buf);
#ifndef MAXPATHLEN
# ifdef PATH_MAX
# define MAXPATHLEN PATH_MAX
+# elif defined(MAX_PATH)
+# define MAXPATHLEN MAX_PATH
# else
# define MAXPATHLEN 256 /* Should be safe for any weird systems that do not define it */
# endif