aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mingw.h3
-rw-r--r--libbb/xreadlink.c3
-rw-r--r--win32/mingw.c8
3 files changed, 14 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
diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c
index f0a63fd9b..b64654b33 100644
--- a/libbb/xreadlink.c
+++ b/libbb/xreadlink.c
@@ -70,6 +70,9 @@ char* FAST_FUNC xmalloc_follow_symlinks(const char *path)
70 } 70 }
71 71
72 if (!--looping) { 72 if (!--looping) {
73#if ENABLE_PLATFORM_MINGW32
74 errno = ELOOP;
75#endif
73 free(linkpath); 76 free(linkpath);
74 free_buf_ret_null: 77 free_buf_ret_null:
75 free(buf); 78 free(buf);
diff --git a/win32/mingw.c b/win32/mingw.c
index 49dcd89d8..c592b8d2c 100644
--- a/win32/mingw.c
+++ b/win32/mingw.c
@@ -161,6 +161,14 @@ int err_win_to_posix(void)
161 return error; 161 return error;
162} 162}
163 163
164#undef strerror
165char *mingw_strerror(int errnum)
166{
167 if (errnum == ELOOP)
168 return (char *)"Too many levels of symbolic links";
169 return strerror(errnum);
170}
171
164static int zero_fd = -1; 172static int zero_fd = -1;
165static int rand_fd = -1; 173static int rand_fd = -1;
166 174