diff options
author | Ron Yorston <rmy@pobox.com> | 2021-08-12 11:39:12 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2021-08-12 11:49:56 +0100 |
commit | da7efea0e7520f7ce8627acc9f4037a2f875c47e (patch) | |
tree | 61f27c5f9bfe600a4bde12fb464e281ba7a28500 /include | |
parent | 602137d1637787c334a1b858e2d4e7a5feb3fb1b (diff) | |
download | busybox-w32-da7efea0e7520f7ce8627acc9f4037a2f875c47e.tar.gz busybox-w32-da7efea0e7520f7ce8627acc9f4037a2f875c47e.tar.bz2 busybox-w32-da7efea0e7520f7ce8627acc9f4037a2f875c47e.zip |
win32: better handling of nested symlinks
Our realpath(3) implementation uses xmalloc_follow_symlinks() to
expand symlinks. This detects when symlinks are too deeply nested
but didn't set errno, so anything calling realpath(3) was unable to
say what had gone wrong. (For example, 'ls -L' or 'stat -L'.)
Set errno to ELOOP.
This then leads to the problem that Windows doesn't know about
ELOOP so reports 'Unknown error'. Add a replacement for strerror(3)
which returns a sensible message.
Costs 96 bytes.
Diffstat (limited to 'include')
-rw-r--r-- | include/mingw.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/mingw.h b/include/mingw.h index c4849215b..03ef89029 100644 --- a/include/mingw.h +++ b/include/mingw.h | |||
@@ -209,6 +209,9 @@ int unsetenv(const char *env); | |||
209 | * string.h | 209 | * string.h |
210 | */ | 210 | */ |
211 | char *strndup(char const *s, size_t n); | 211 | char *strndup(char const *s, size_t n); |
212 | char *mingw_strerror(int errnum); | ||
213 | |||
214 | #define strerror mingw_strerror | ||
212 | 215 | ||
213 | /* | 216 | /* |
214 | * strings.h | 217 | * strings.h |