tools: patch various gnu tools for macOS 10.13
[oweals/openwrt.git] / tools / tar / patches / 001-fix-macos-vasnprintf.patch
1 --- a/gnu/vasnprintf.c
2 +++ b/gnu/vasnprintf.c
3 @@ -4858,7 +4858,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
4  #endif
5                    *fbp = dp->conversion;
6  #if USE_SNPRINTF
7 -# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
8 +# if ! (((__GLIBC__ > 2                                                 \
9 +          || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3))                  \
10 +         && !defined __UCLIBC__)                                        \
11 +        || (defined __APPLE__ && defined __MACH__)                      \
12 +        || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
13                  fbp[1] = '%';
14                  fbp[2] = 'n';
15                  fbp[3] = '\0';
16 @@ -4872,6 +4876,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
17                     in format strings in writable memory may crash the program
18                     (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
19                     in this situation.  */
20 +                /* macOS 10.13 High Sierra behaves like glibc with
21 +                   _FORTIFY_SOURCE=2, and older macOS releases
22 +                   presumably do not need %n.  */
23                  /* On native Windows systems (such as mingw), we can avoid using
24                     %n because:
25                       - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,