https://bugs.winehq.org/show_bug.cgi?id=50878
Erich E. Hoover erich.e.hoover@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED
--- Comment #16 from Erich E. Hoover erich.e.hoover@gmail.com --- Great, the problem here was that when I was detecting whether the link target was a file or a folder that it was using the path from readlink instead of just using the original path and following the link:
p = tmp; reparse_tag = IO_REPARSE_TAG_LX_SYMLINK; if (flags && *p != '/') *flags = SYMLINK_FLAG_RELATIVE; - if (!stat( tmp, &st )) + if (!fstatat( fd, unix_src, &st, 0 )) dir_flag = S_ISDIR(st.st_mode); else dir_flag = FALSE; /* treat dangling symlinks as files */
That means that when it was working with a relative path that it was decoding the path from the current working directory instead of from the location of the link.