aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2021-08-12 11:39:12 +0100
committerRon Yorston <rmy@pobox.com>2021-08-12 11:49:56 +0100
commitda7efea0e7520f7ce8627acc9f4037a2f875c47e (patch)
tree61f27c5f9bfe600a4bde12fb464e281ba7a28500 /include
parent602137d1637787c334a1b858e2d4e7a5feb3fb1b (diff)
downloadbusybox-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.h3
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 */
211char *strndup(char const *s, size_t n); 211char *strndup(char const *s, size_t n);
212char *mingw_strerror(int errnum);
213
214#define strerror mingw_strerror
212 215
213/* 216/*
214 * strings.h 217 * strings.h