aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2021-03-01 09:31:21 +0000
committerRon Yorston <rmy@pobox.com>2021-03-01 09:31:21 +0000
commit3c44f5cae158ff4ffd03a4c319777ae88a60bcb9 (patch)
treee727f576233657072eac4c993e3c7a7fdf9ca96e /arch
parent367f583cffcabdeebc3c27a42eba1926b5ea9819 (diff)
downloadbusybox-w32-3c44f5cae158ff4ffd03a4c319777ae88a60bcb9.tar.gz
busybox-w32-3c44f5cae158ff4ffd03a4c319777ae88a60bcb9.tar.bz2
busybox-w32-3c44f5cae158ff4ffd03a4c319777ae88a60bcb9.zip
Fix `xmalloc_readlink()` again
In e86a3ddd8 (win32: make readlink(2) implementation unconditional, 2021-02-12), we removed the special casing of `errno == ENOSYS` when trying to follow symlinks. However, that handling really was necessary: - When we followed a symlink, and found a non-symlink, and then called `readlink()` with that non-symlink, we got `errno == ENOSYS` on Windows (translated from `ERROR_NOT_A_REPARSE_POINT`), and we did want to stop the loop and return the current path in that case. (Noted by Johannes Schindelin.) - When readlink() called DeviceIoControl() for files on certain filesystems (e.g. FAT or a CDROM) it returned `errno == ENOSYS` (translated from ERROR_INVALID_FUNCTION). Revert the part of the patch which handled `ENOSYS` on Windows.
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions