diff options
Diffstat (limited to 'main/musl')
15 files changed, 6 insertions, 658 deletions
diff --git a/main/musl/0001-check-result-from-res_mkquery.patch b/main/musl/0001-check-result-from-res_mkquery.patch deleted file mode 100644 index 384617a9fa..0000000000 --- a/main/musl/0001-check-result-from-res_mkquery.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9ba48c2e4f1a8a0670ffc40c02ac6a909c62668e Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Wed, 25 May 2016 09:37:54 +0200 -Subject: [PATCH] check result from res_mkquery - -we don't want to try send a query that may be malformatted. ---- - src/network/lookup_name.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c -index 86f90ac..d3d97b4 100644 ---- a/src/network/lookup_name.c -+++ b/src/network/lookup_name.c -@@ -145,11 +145,15 @@ static int name_from_dns(struct address buf[static MAXADDRS], char canon[static - if (family != AF_INET6) { - qlens[nq] = __res_mkquery(0, name, 1, RR_A, 0, 0, 0, - qbuf[nq], sizeof *qbuf); -+ if (qlens[nq] == -1) -+ return EAI_NONAME; - nq++; - } - if (family != AF_INET) { - qlens[nq] = __res_mkquery(0, name, 1, RR_AAAA, 0, 0, 0, - qbuf[nq], sizeof *qbuf); -+ if (qlens[nq] == -1) -+ return EAI_NONAME; - nq++; - } - --- -2.8.4 - diff --git a/main/musl/0001-handle-non-matching-address-family-entries-in-hosts-.patch b/main/musl/0001-handle-non-matching-address-family-entries-in-hosts-.patch deleted file mode 100644 index 927106d574..0000000000 --- a/main/musl/0001-handle-non-matching-address-family-entries-in-hosts-.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 6d70c08a2c37745df637b231711f6dec79dbc6e1 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Wed, 2 Mar 2016 00:34:51 -0500 -Subject: [PATCH] handle non-matching address family entries in hosts file - -name_from_hosts failed to account for the possibility of an address -family error from name_from_numeric, wrongly counting such a return as -success and using the uninitialized address data as part of the -results passed up to the caller. - -non-matching address family entries cannot simply be ignored or -results would be inconsistent with respect to whether AF_UNSPEC or a -specific address family is queried. instead, record that a -non-matching entry was seen, and fail the lookup with EAI_NONAME of no -matching-family entries are found. ---- - src/network/lookup_name.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c -index a26ad53..86f90ac 100644 ---- a/src/network/lookup_name.c -+++ b/src/network/lookup_name.c -@@ -49,7 +49,7 @@ static int name_from_hosts(struct address buf[static MAXADDRS], char canon[stati - { - char line[512]; - size_t l = strlen(name); -- int cnt = 0; -+ int cnt = 0, badfam = 0; - unsigned char _buf[1032]; - FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); - if (!f) switch (errno) { -@@ -71,8 +71,16 @@ static int name_from_hosts(struct address buf[static MAXADDRS], char canon[stati - /* Isolate IP address to parse */ - for (p=line; *p && !isspace(*p); p++); - *p++ = 0; -- if (name_from_numeric(buf+cnt, line, family)) -+ switch (name_from_numeric(buf+cnt, line, family)) { -+ case 1: - cnt++; -+ break; -+ case 0: -+ continue; -+ default: -+ badfam = EAI_NONAME; -+ continue; -+ } - - /* Extract first name as canonical name */ - for (; *p && isspace(*p); p++); -@@ -81,7 +89,7 @@ static int name_from_hosts(struct address buf[static MAXADDRS], char canon[stati - if (is_valid_hostname(p)) memcpy(canon, p, z-p+1); - } - __fclose_ca(f); -- return cnt; -+ return cnt ? cnt : badfam; - } - - struct dpc_ctx { --- -2.7.2 - diff --git a/main/musl/0002-fix-at-the-start-of-a-BRE-subexpression.patch b/main/musl/0002-fix-at-the-start-of-a-BRE-subexpression.patch deleted file mode 100644 index 7c5c82516f..0000000000 --- a/main/musl/0002-fix-at-the-start-of-a-BRE-subexpression.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 39ea71fb8afddda879a1999f2a203dfdaf57a639 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Mon, 29 Feb 2016 15:04:46 +0000 -Subject: [PATCH] fix * at the start of a BRE subexpression - -commit 7eaa76fc2e7993582989d3838b1ac32dd8abac09 made * invalid at -the start of a BRE subexpression, but it should be accepted as -literal * there according to the standard. - -This patch does not fix subexpressions starting with ^*. ---- - src/regex/regcomp.c | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/src/regex/regcomp.c b/src/regex/regcomp.c -index da6abd1..7a2864c 100644 ---- a/src/regex/regcomp.c -+++ b/src/regex/regcomp.c -@@ -889,7 +889,6 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s) - s++; - break; - case '*': -- return REG_BADPAT; - case '{': - case '+': - case '?': -@@ -978,9 +977,6 @@ static reg_errcode_t tre_parse(tre_parse_ctx_t *ctx) - } - - parse_iter: -- /* extension: repetitions are rejected after an empty node -- eg. (+), |*, {2}, but assertions are not treated as empty -- so ^* or $? are accepted currently. */ - for (;;) { - int min, max; - --- -2.7.2 - diff --git a/main/musl/0003-fix-at-the-start-of-a-complete-BRE.patch b/main/musl/0003-fix-at-the-start-of-a-complete-BRE.patch deleted file mode 100644 index dac819d007..0000000000 --- a/main/musl/0003-fix-at-the-start-of-a-complete-BRE.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 29b13575376509bb21539711f30c1deaf0823033 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Mon, 29 Feb 2016 16:36:25 +0000 -Subject: [PATCH] fix ^* at the start of a complete BRE - -This is a workaround to treat * as literal * at the start of a BRE. - -Ideally ^ would be treated as an anchor at the start of any BRE -subexpression and similarly $ would be an anchor at the end of any -subexpression. This is not required by the standard and hard to do -with the current code, but it's the existing practice. If it is -changed, * should be treated as literal after such anchor as well. ---- - src/regex/regcomp.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/regex/regcomp.c b/src/regex/regcomp.c -index 7a2864c..5fad98b 100644 ---- a/src/regex/regcomp.c -+++ b/src/regex/regcomp.c -@@ -994,6 +994,10 @@ static reg_errcode_t tre_parse(tre_parse_ctx_t *ctx) - if (*s=='\\') - s++; - -+ /* handle ^* at the start of a complete BRE. */ -+ if (!ere && s==ctx->re+1 && s[-1]=='^') -+ break; -+ - /* extension: multiple consecutive *+?{,} is unspecified, - but (a+)+ has to be supported so accepting a++ makes - sense, note however that the RE_DUP_MAX limit can be --- -2.7.2 - diff --git a/main/musl/0004-math-fix-expf-NAN-and-exp2f-NAN-to-return-NAN-instea.patch b/main/musl/0004-math-fix-expf-NAN-and-exp2f-NAN-to-return-NAN-instea.patch deleted file mode 100644 index e9eadc9718..0000000000 --- a/main/musl/0004-math-fix-expf-NAN-and-exp2f-NAN-to-return-NAN-instea.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b023c03b574acdfd73418314a5dcaa83e5cea5a0 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Fri, 4 Mar 2016 21:23:33 +0000 -Subject: [PATCH] math: fix expf(-NAN) and exp2f(-NAN) to return -NAN instead - of 0 - -expf(-NAN) was treated as expf(-large) which unconditionally -returns +0, so special case +-NAN. -reported by Petr Hosek. ---- - src/math/exp2f.c | 2 ++ - src/math/expf.c | 2 ++ - 2 files changed, 4 insertions(+) - -diff --git a/src/math/exp2f.c b/src/math/exp2f.c -index cf6126e..296b634 100644 ---- a/src/math/exp2f.c -+++ b/src/math/exp2f.c -@@ -91,6 +91,8 @@ float exp2f(float x) - /* Filter out exceptional cases. */ - ix = u.i & 0x7fffffff; - if (ix > 0x42fc0000) { /* |x| > 126 */ -+ if (ix > 0x7f800000) /* NaN */ -+ return x; - if (u.i >= 0x43000000 && u.i < 0x80000000) { /* x >= 128 */ - x *= 0x1p127f; - return x; -diff --git a/src/math/expf.c b/src/math/expf.c -index 16e9afe..feee2b0 100644 ---- a/src/math/expf.c -+++ b/src/math/expf.c -@@ -39,6 +39,8 @@ float expf(float x) - - /* special cases */ - if (hx >= 0x42aeac50) { /* if |x| >= -87.33655f or NaN */ -+ if (hx > 0x7f800000) /* NaN */ -+ return x; - if (hx >= 0x42b17218 && !sign) { /* x >= 88.722839f */ - /* overflow */ - x *= 0x1p127f; --- -2.7.2 - diff --git a/main/musl/0005-env-avoid-leaving-dangling-pointers-in-__env_map.patch b/main/musl/0005-env-avoid-leaving-dangling-pointers-in-__env_map.patch deleted file mode 100644 index 411e802fd1..0000000000 --- a/main/musl/0005-env-avoid-leaving-dangling-pointers-in-__env_map.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 9543656cc32fda48fc463f332ee20e91eed2b768 Mon Sep 17 00:00:00 2001 -From: Alexander Monakov <amonakov@ispras.ru> -Date: Sun, 6 Mar 2016 20:22:38 +0300 -Subject: [PATCH] env: avoid leaving dangling pointers in __env_map - -This is the minimal fix for __putenv leaving a pointer to freed heap -storage in __env_map array, which could later on lead to errors such -as double-free. ---- - src/env/putenv.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/env/putenv.c b/src/env/putenv.c -index 4042869..7153042 100644 ---- a/src/env/putenv.c -+++ b/src/env/putenv.c -@@ -30,6 +30,7 @@ int __putenv(char *s, int a) - } - } else { - free(__env_map[j]); -+ __env_map[j] = s; - } - } - } --- -2.7.2 - diff --git a/main/musl/0006-fix-padding-string-formats-to-width-in-wide-printf-v.patch b/main/musl/0006-fix-padding-string-formats-to-width-in-wide-printf-v.patch deleted file mode 100644 index c80043e837..0000000000 --- a/main/musl/0006-fix-padding-string-formats-to-width-in-wide-printf-v.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 4aac019a0efd59011a48d031ad046c934c7e8365 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Wed, 16 Mar 2016 16:35:22 -0400 -Subject: [PATCH] fix padding string formats to width in wide printf variants - -the idiom fprintf(f, "%.*s", n, "") was wrongly used in vfwprintf as a -means of producing n spaces; instead it produces no output. the -correct form is fprintf(f, "%*s", n, ""), using width instead of -precision, since for %s the later is a maximum rather than a minimum. ---- - src/stdio/vfwprintf.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/stdio/vfwprintf.c b/src/stdio/vfwprintf.c -index f06d5ae..f9f1ecf 100644 ---- a/src/stdio/vfwprintf.c -+++ b/src/stdio/vfwprintf.c -@@ -288,9 +288,9 @@ static int wprintf_core(FILE *f, const wchar_t *fmt, va_list *ap, union arg *nl_ - z = wmemchr(a, 0, p); - if (z) p=z-a; - if (w<p) w=p; -- if (!(fl&LEFT_ADJ)) fprintf(f, "%.*s", w-p, ""); -+ if (!(fl&LEFT_ADJ)) fprintf(f, "%*s", w-p, ""); - out(f, a, p); -- if ((fl&LEFT_ADJ)) fprintf(f, "%.*s", w-p, ""); -+ if ((fl&LEFT_ADJ)) fprintf(f, "%*s", w-p, ""); - l=w; - continue; - case 'm': -@@ -303,14 +303,14 @@ static int wprintf_core(FILE *f, const wchar_t *fmt, va_list *ap, union arg *nl_ - if (i<0) return -1; - p=l; - if (w<p) w=p; -- if (!(fl&LEFT_ADJ)) fprintf(f, "%.*s", w-p, ""); -+ if (!(fl&LEFT_ADJ)) fprintf(f, "%*s", w-p, ""); - bs = arg.p; - while (l--) { - i=mbtowc(&wc, bs, MB_LEN_MAX); - bs+=i; - fputwc(wc, f); - } -- if ((fl&LEFT_ADJ)) fprintf(f, "%.*s", w-p, ""); -+ if ((fl&LEFT_ADJ)) fprintf(f, "%*s", w-p, ""); - l=w; - continue; - } --- -2.7.4 - diff --git a/main/musl/0007-fix-gethostbyaddr_r-to-fill-struct-hostent.h_length-.patch b/main/musl/0007-fix-gethostbyaddr_r-to-fill-struct-hostent.h_length-.patch deleted file mode 100644 index a8d8a5f5a9..0000000000 --- a/main/musl/0007-fix-gethostbyaddr_r-to-fill-struct-hostent.h_length-.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5978eb703ce0e64dd778a88c1ffffb76fe5e2202 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> -Date: Tue, 22 Mar 2016 16:27:51 +0200 -Subject: [PATCH] fix gethostbyaddr_r to fill struct hostent.h_length as - appropriate - ---- - src/network/gethostbyaddr_r.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/network/gethostbyaddr_r.c b/src/network/gethostbyaddr_r.c -index 66e0330..0f1e61a 100644 ---- a/src/network/gethostbyaddr_r.c -+++ b/src/network/gethostbyaddr_r.c -@@ -64,6 +64,7 @@ int gethostbyaddr_r(const void *a, socklen_t l, int af, - } - - h->h_addrtype = af; -+ h->h_length = l; - h->h_name = h->h_aliases[0]; - *res = h; - return 0; --- -2.7.4 - diff --git a/main/musl/0008-fix-undefined-pointer-comparison-in-stdio-internal-_.patch b/main/musl/0008-fix-undefined-pointer-comparison-in-stdio-internal-_.patch deleted file mode 100644 index cd59785b29..0000000000 --- a/main/musl/0008-fix-undefined-pointer-comparison-in-stdio-internal-_.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 6d1a3dfeaf2caac4033a3c65822fb4e7e14866c7 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Mon, 28 Mar 2016 23:41:17 -0400 -Subject: [PATCH] fix undefined pointer comparison in stdio-internal __toread - -the comparison f->wpos > f->buf has undefined behavior when f->wpos is -a null pointer, despite the intuition (and actual compiler behavior, -for all known compilers) being that NULL > ptr is false for all valid -pointers ptr. - -the purpose of the comparison is to determine if the write buffer is -non-empty, and the idiom used elsewhere for that is comparison against -f->wbase, which is either a null pointer when not writing, or equal to -f->buf when writing. in the former case, both f->wpos and f->wbase are -null; in the latter they are both non-null and point into the same -array. ---- - src/stdio/__toread.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/stdio/__toread.c b/src/stdio/__toread.c -index b08f5bb..35f67b8 100644 ---- a/src/stdio/__toread.c -+++ b/src/stdio/__toread.c -@@ -3,7 +3,7 @@ - int __toread(FILE *f) - { - f->mode |= f->mode-1; -- if (f->wpos > f->buf) f->write(f, 0, 0); -+ if (f->wpos > f->wbase) f->write(f, 0, 0); - f->wpos = f->wbase = f->wend = 0; - if (f->flags & F_NORD) { - f->flags |= F_ERR; --- -2.7.4 - diff --git a/main/musl/0009-fix-regression-disabling-use-of-pause-instruction-fo.patch b/main/musl/0009-fix-regression-disabling-use-of-pause-instruction-fo.patch deleted file mode 100644 index 58b2459f89..0000000000 --- a/main/musl/0009-fix-regression-disabling-use-of-pause-instruction-fo.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 5c3412d22555d03a1c00578ba8faaa8dc9206420 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Tue, 29 Mar 2016 21:22:52 -0400 -Subject: [PATCH] fix regression disabling use of pause instruction for x86 - a_spin - -commits e24984efd5c6ac5ea8e6cb6cd914fa8435d458bc and -16b55298dc4b6a54d287d7494e04542667ef8861 inadvertently disabled the -a_spin implementations for i386, x86_64, and x32 by defining a macro -named a_pause instead of a_spin. this should not have caused any -functional regression, but it inhibited cpu relaxation while spinning -for locks. - -bug reported by George Kulakowski. ---- - arch/i386/atomic_arch.h | 2 +- - arch/x32/atomic_arch.h | 2 +- - arch/x86_64/atomic_arch.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/arch/i386/atomic_arch.h b/arch/i386/atomic_arch.h -index 6e67c4c..2b1a049 100644 ---- a/arch/i386/atomic_arch.h -+++ b/arch/i386/atomic_arch.h -@@ -71,7 +71,7 @@ static inline void a_barrier() - __asm__ __volatile__( "" : : : "memory" ); - } - --#define a_pause a_pause -+#define a_spin a_spin - static inline void a_spin() - { - __asm__ __volatile__( "pause" : : : "memory" ); -diff --git a/arch/x32/atomic_arch.h b/arch/x32/atomic_arch.h -index 26098d3..7daf4ae 100644 ---- a/arch/x32/atomic_arch.h -+++ b/arch/x32/atomic_arch.h -@@ -87,7 +87,7 @@ static inline void a_barrier() - __asm__ __volatile__( "" : : : "memory" ); - } - --#define a_pause a_pause -+#define a_spin a_spin - static inline void a_spin() - { - __asm__ __volatile__( "pause" : : : "memory" ); -diff --git a/arch/x86_64/atomic_arch.h b/arch/x86_64/atomic_arch.h -index 9f47f80..55fc6fb 100644 ---- a/arch/x86_64/atomic_arch.h -+++ b/arch/x86_64/atomic_arch.h -@@ -96,7 +96,7 @@ static inline void a_barrier() - __asm__ __volatile__( "" : : : "memory" ); - } - --#define a_pause a_pause -+#define a_spin a_spin - static inline void a_spin() - { - __asm__ __volatile__( "pause" : : : "memory" ); --- -2.7.4 - diff --git a/main/musl/0010-fix-read-past-end-of-haystack-buffer-for-short-needl.patch b/main/musl/0010-fix-read-past-end-of-haystack-buffer-for-short-needl.patch deleted file mode 100644 index 35c7276d0f..0000000000 --- a/main/musl/0010-fix-read-past-end-of-haystack-buffer-for-short-needl.patch +++ /dev/null @@ -1,36 +0,0 @@ -From c718f9fc1b4bd913eff10d0c12763f90b2bc487c Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Fri, 1 Apr 2016 13:36:15 -0400 -Subject: [PATCH] fix read past end of haystack buffer for short needles in - memmem - -the two/three/four byte memmem specializations are not prepared to -handle haystacks shorter than the needle; they unconditionally read at -least up to the needle length and subtract from the haystack length. -if the haystack is shorter, the remaining haystack length underflows -and produces an unbounded search which will eventually either crash or -find a spurious match. - -the top-level memmem function attempted to avoid this case already by -checking for haystack shorter than needle, but it failed to re-check -after using memchr to remove the maximal prefix not containing the -first byte of the needle. ---- - src/string/memmem.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/string/memmem.c b/src/string/memmem.c -index d7e1221..4be6a31 100644 ---- a/src/string/memmem.c -+++ b/src/string/memmem.c -@@ -140,6 +140,7 @@ void *memmem(const void *h0, size_t k, const void *n0, size_t l) - h = memchr(h0, *n, k); - if (!h || l==1) return (void *)h; - k -= h - (const unsigned char *)h0; -+ if (k<l) return 0; - if (l==2) return twobyte_memmem(h, k, n); - if (l==3) return threebyte_memmem(h, k, n); - if (l==4) return fourbyte_memmem(h, k, n); --- -2.8.2 - diff --git a/main/musl/0011-fix-FILE-buffer-underflow-in-ungetwc.patch b/main/musl/0011-fix-FILE-buffer-underflow-in-ungetwc.patch deleted file mode 100644 index 78c716121a..0000000000 --- a/main/musl/0011-fix-FILE-buffer-underflow-in-ungetwc.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 6ed791e768d83b40ed56c99dbb1ed72c1e49aae7 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Tue, 26 Apr 2016 15:26:40 -0400 -Subject: [PATCH] fix FILE buffer underflow in ungetwc - -commit 7e816a6487932cbb3cb71d94b609e50e81f4e5bf (version 1.1.11 -release cycle) moved the code that performs wchar_t to multibyte -conversion across code that used the resulting length in bytes, -thereby breaking the unget buffer space check in ungetwc and -clobbering up to three bytes below the start of the buffer. - -for allocated FILEs (all read-enabled FILEs except stdin), the -underflow clobbers at most the FILE-specific locale pointer. no stores -are performed through this pointer, but subsequent loads may result in -a crash or mismatching encoding rule (UTF-8 multibyte vs byte-based). - -for stdin, the buffer lies in .bss and the underflow may clobber -another object. in practice, for libc.so the adjacent object seems to -be stderr's buffer, which is completely unused, but this could vary -with linking options, or when static linking. - -applications which do not attempt to use more than one character of -ungetwc pushback, or which do not use ungetwc, are not affected. ---- - src/stdio/ungetwc.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/stdio/ungetwc.c b/src/stdio/ungetwc.c -index 80d6e20..9edf366 100644 ---- a/src/stdio/ungetwc.c -+++ b/src/stdio/ungetwc.c -@@ -8,7 +8,7 @@ - wint_t ungetwc(wint_t c, FILE *f) - { - unsigned char mbc[MB_LEN_MAX]; -- int l=1; -+ int l; - locale_t *ploc = &CURRENT_LOCALE, loc = *ploc; - - FLOCK(f); -@@ -17,8 +17,8 @@ wint_t ungetwc(wint_t c, FILE *f) - *ploc = f->locale; - - if (!f->rpos) __toread(f); -- if (!f->rpos || f->rpos < f->buf - UNGET + l || c == WEOF || -- (!isascii(c) && (l = wctomb((void *)mbc, c)) < 0)) { -+ if (!f->rpos || c == WEOF || (l = wcrtomb((void *)mbc, c, 0)) < 0 || -+ f->rpos < f->buf - UNGET + l) { - FUNLOCK(f); - *ploc = loc; - return WEOF; --- -2.8.2 - diff --git a/main/musl/0012-fix-incorrect-protocol-name-and-number-for-egp.patch b/main/musl/0012-fix-incorrect-protocol-name-and-number-for-egp.patch deleted file mode 100644 index 01858484cd..0000000000 --- a/main/musl/0012-fix-incorrect-protocol-name-and-number-for-egp.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4b619e5c61d7d4cf344b355be8b1acb0f0795ea9 Mon Sep 17 00:00:00 2001 -From: Andrew Kelley <superjoe30@gmail.com> -Date: Wed, 4 May 2016 13:29:11 -0700 -Subject: [PATCH] fix incorrect protocol name and number for egp - -previously if you called getprotobyname("egp") you would get -NULL because \008 is invalid octal and so the protocol id was -interpreted as 0 and name as "8egp". ---- - src/network/proto.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/network/proto.c b/src/network/proto.c -index a42d145..c4fd34e 100644 ---- a/src/network/proto.c -+++ b/src/network/proto.c -@@ -12,7 +12,7 @@ static const unsigned char protos[] = { - "\004ipencap\0" - "\005st\0" - "\006tcp\0" -- "\008egp\0" -+ "\010egp\0" - "\014pup\0" - "\021udp\0" - "\024hmp\0" --- -2.8.2 - diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD index cd5fe80969..17bc23f24b 100644 --- a/main/musl/APKBUILD +++ b/main/musl/APKBUILD @@ -1,8 +1,8 @@ # Contributor: William Pitcock <nenolod@dereferenced.org> # Maintainer: Timo Teräs <timo.teras@iki.fi> pkgname=musl -pkgver=1.1.14 -pkgrel=11 +pkgver=1.1.15 +pkgrel=0 pkgdesc="the musl c library (libc) implementation" url="http://www.musl-libc.org/" arch="all" @@ -12,20 +12,6 @@ depends_dev="!uclibc-dev" makedepends="$depends_dev" subpackages="$pkgname-dev $pkgname-utils $pkgname-dbg libc6-compat:compat" source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz - 0001-handle-non-matching-address-family-entries-in-hosts-.patch - 0002-fix-at-the-start-of-a-BRE-subexpression.patch - 0003-fix-at-the-start-of-a-complete-BRE.patch - 0004-math-fix-expf-NAN-and-exp2f-NAN-to-return-NAN-instea.patch - 0005-env-avoid-leaving-dangling-pointers-in-__env_map.patch - 0006-fix-padding-string-formats-to-width-in-wide-printf-v.patch - 0007-fix-gethostbyaddr_r-to-fill-struct-hostent.h_length-.patch - 0008-fix-undefined-pointer-comparison-in-stdio-internal-_.patch - 0009-fix-regression-disabling-use-of-pause-instruction-fo.patch - 0010-fix-read-past-end-of-haystack-buffer-for-short-needl.patch - 0011-fix-FILE-buffer-underflow-in-ungetwc.patch - 0012-fix-incorrect-protocol-name-and-number-for-egp.patch - 0001-check-result-from-res_mkquery.patch - fix-failure-to-obtain-EOWNERDEAD-status-for-process-shared-robust-mutexes.patch ldconfig __stack_chk_fail_local.c @@ -67,6 +53,7 @@ build() { # note: not autotools LDFLAGS="$LDFLAGS -Wl,-soname,libc.musl-${CARCH}.so.1" \ ./configure \ + --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ @@ -132,61 +119,19 @@ compat() { done } -md5sums="d529ce4a2f7f79d8c3fd4b8329417b57 musl-1.1.14.tar.gz -c683094384c5726a99d1047f01aeb331 0001-handle-non-matching-address-family-entries-in-hosts-.patch -3b9089a017ac90b303fad94a6aa71219 0002-fix-at-the-start-of-a-BRE-subexpression.patch -6cee220f293754cd1e7126f3d4db5b43 0003-fix-at-the-start-of-a-complete-BRE.patch -476dc9157a7ac6de5bb6f7c5a5ef7a2d 0004-math-fix-expf-NAN-and-exp2f-NAN-to-return-NAN-instea.patch -a372031134c17cefb9aad3c9c0e6bb19 0005-env-avoid-leaving-dangling-pointers-in-__env_map.patch -d85fdb4d80c8372d8e63cf4382e4012a 0006-fix-padding-string-formats-to-width-in-wide-printf-v.patch -882309436377613d8b65a1fed573f125 0007-fix-gethostbyaddr_r-to-fill-struct-hostent.h_length-.patch -4701e50c55b520e644c9e9a94e851d7f 0008-fix-undefined-pointer-comparison-in-stdio-internal-_.patch -a2457ce90f3e4d5ef04005b6f42e9bc3 0009-fix-regression-disabling-use-of-pause-instruction-fo.patch -5cbd4551e71b317e1125e9cbe08e9a6d 0010-fix-read-past-end-of-haystack-buffer-for-short-needl.patch -1a54c766a86a56946ee53f9515410670 0011-fix-FILE-buffer-underflow-in-ungetwc.patch -67ca785b787c53316397f96d21afab31 0012-fix-incorrect-protocol-name-and-number-for-egp.patch -3e78b4c125b0c3f06c06a9b4ade8e18d 0001-check-result-from-res_mkquery.patch -34e04b179e4b4a1fdedd27cd27455271 fix-failure-to-obtain-EOWNERDEAD-status-for-process-shared-robust-mutexes.patch +md5sums="9590a9d47ee64f220b3c12f7afb864ca musl-1.1.15.tar.gz 830d01f7821b978df770b06db3790921 ldconfig 0df687757221bbb0fc1aa67f1bd646f9 __stack_chk_fail_local.c 57ef2c63b9ec6a2041694ace97d4ffa2 getconf.c 2b941c4251cac44988a4abfc50e21267 getent.c 45f92f8d59cf84d765de698a9578dbf4 iconv.c" -sha256sums="35f6c00c84a6091bd5dab29eedde7508dae755ead92dcc0239f3677d1055b9b5 musl-1.1.14.tar.gz -87d3161c69b347c1cb826a886d098bc03a17a00172c5839c4e30ed1745fb92ec 0001-handle-non-matching-address-family-entries-in-hosts-.patch -0bd21cab29a7a2f6644d1046e7bd91dd5aadf6748e207ddda3ff99e353548775 0002-fix-at-the-start-of-a-BRE-subexpression.patch -13d285aba7e5e33dca32e6adbb5ada69f0f88f0320968b201d03fe02f1a70d4c 0003-fix-at-the-start-of-a-complete-BRE.patch -e4e36277864e1445295be1397c930c649905ddfa32f1ed65c6defb67f78dd0e8 0004-math-fix-expf-NAN-and-exp2f-NAN-to-return-NAN-instea.patch -02cd2b0c92ab04a7e39ab4bf53687bc3354b8fffe3cb4aba9cb630532ce43d4a 0005-env-avoid-leaving-dangling-pointers-in-__env_map.patch -6037fa5aee8dba3d3b01ded5752d876954c23da3a53ed5a734f0816a2ef1d4bd 0006-fix-padding-string-formats-to-width-in-wide-printf-v.patch -7cec62c7a4ee9d1fa5cd79391aabe9363006ccc6c942fd09924b038e7224f144 0007-fix-gethostbyaddr_r-to-fill-struct-hostent.h_length-.patch -b937311664b96b6272e4e62e1aa0d44edd58c825cbb95746c82fab85a6390968 0008-fix-undefined-pointer-comparison-in-stdio-internal-_.patch -4eefc6e8e95da425a519e093e6f9e15390d498070759256de4d86a89679236b9 0009-fix-regression-disabling-use-of-pause-instruction-fo.patch -3cfd4b886b5aa99d48a4bc814e3ac11690fdd166a9fc02da13274cd9acb2260b 0010-fix-read-past-end-of-haystack-buffer-for-short-needl.patch -b19de98d4c4051c2ff89b5f4b2705444f6f4c44a639692bedfa30a71b965fd04 0011-fix-FILE-buffer-underflow-in-ungetwc.patch -8721a088af8aa388c771174eb8e9b19cc96c47fe07d2fa8c70a640cdb7d52221 0012-fix-incorrect-protocol-name-and-number-for-egp.patch -7e5b08404da6f306ab8da9e81107a7901415d612069103d6f7b6b8e6ea504959 0001-check-result-from-res_mkquery.patch -87e1b3398abf440b6757a61d40511714f8b97e1dfca09c406347842e885ff444 fix-failure-to-obtain-EOWNERDEAD-status-for-process-shared-robust-mutexes.patch +sha256sums="97e447c7ee2a7f613186ec54a93054fe15469fe34d7d323080f7ef38f5ecb0fa musl-1.1.15.tar.gz b4a2c06db38742e8c42c3c9838b285a7d8cdac6c091ff3df5ff9a15f1e41b9c7 ldconfig 299a7d75a09de3e2e11e7fb4acc3182e4a14e868093d2f30938fce9bfcff13da __stack_chk_fail_local.c d87d0cbb3690ae2c5d8cc218349fd8278b93855dd625deaf7ae50e320aad247c getconf.c 68373a55e89ce85c562d941ccf588337d6cc6c9c17689d695f65cd7607134bbe getent.c f79a2930a2e5bb0624321589edf8b889d1e9b603e01e6b7ae214616605b3fdd7 iconv.c" -sha512sums="9016246b44a7e6ef51477f0a246373c79f3e796c70031c3323be1b6c4c0518a2d4578f1aa712adfd9a80cdc1d71918bd7a35855052a0452b854755bf0cc2424e musl-1.1.14.tar.gz -8546b31b04effe8d863e26ecd1677890e925b0f65f46e09f03804024c36595c944c3d7e758160f57862b9e6c85e431139ff8b2412a29c57eb9773cce327647a5 0001-handle-non-matching-address-family-entries-in-hosts-.patch -18b2f436de9e1c3b8720c93d4a013f069f1f7bb8d71203c157a4670b4fa5749347fd2eba74b47e527f9bb7d98442eaf69837ee69ea1840bf6d1577f14029f089 0002-fix-at-the-start-of-a-BRE-subexpression.patch -51a16e88f602d1db175d82d8276273006b74dc7e87340207e26db80820bab368c50f4d1539175bf3b5b3b23ae6da2e452e81f858029bfef49c54f548bc1a4674 0003-fix-at-the-start-of-a-complete-BRE.patch -bae8e0f4a1f73be42450945058c1106957da56dc7fa087515dd51bcac3c7099c4cfe4e8c44fb8efc059944d0675858b747396d60c884b031663983912262e992 0004-math-fix-expf-NAN-and-exp2f-NAN-to-return-NAN-instea.patch -202f21518ca75373712430fb547662e7a4936c6947cb61fe97fd5dbd9f48217ca38f90439d51b03cafce9a2bfd90e360182a454f3b941abae033d90f2bffe50c 0005-env-avoid-leaving-dangling-pointers-in-__env_map.patch -fb30c3d1113e3cdaf575b37257b1184f2d5cc7cea0eb0ee94a71e861f9c72fe924de5f63826701584f68c9e1c9c4c1357a967ebe00f637312193e268f7a7cf94 0006-fix-padding-string-formats-to-width-in-wide-printf-v.patch -ffb52c8a24bfa5fcad0561c6c4f6f265b0b3666f0c6e8c0a12b1f11c9aeb1c51b17f4f0fccdd70a3e94dccb17650efaf24635cd12b64d12c09469ca1399d99d7 0007-fix-gethostbyaddr_r-to-fill-struct-hostent.h_length-.patch -afa17d63f3de02661709d3712d1586b3173518476d314ca2b1e72a3814536538c81aefa5a4ec0cee3470af7177dd4842ab6e62e891ae85a88102bb703ba09c59 0008-fix-undefined-pointer-comparison-in-stdio-internal-_.patch -5818f2563a7a335aec2cbaaeb4acb80d1380206dd03110331adb09fd1279c84f09883e2f92e0d8964079acf3d4fc173c1b5073091c874c492f2f5a966e1cccb7 0009-fix-regression-disabling-use-of-pause-instruction-fo.patch -c0cf860bc7c6259dc626a1178258010e4ea6588f1ecd6c6c69ed85f11c5f0f6c502f59af3d9655bb92f05263ffd06c8fe4aed3939e105c00f783b9c7975ac9ff 0010-fix-read-past-end-of-haystack-buffer-for-short-needl.patch -93a696ef060f4a7c9efe32589e3f8e0bb08cbbae6d0f9852aef8555f2f095f0d50431f55647ee8b59599916b0c90bb4aa251be495d3d2697b36c7cad5c9375a4 0011-fix-FILE-buffer-underflow-in-ungetwc.patch -78f1952b786cd4c31d956e169a6362d0f3007d68cb95308f88ae556dac88689cfa0e94856e5e8f727b1f27a9df5b35dab0fec8f3df4d925207c4980eb4e9f80f 0012-fix-incorrect-protocol-name-and-number-for-egp.patch -d1e393976546216a6de28b00a5b405a14d2cdf71945b695c3b45cd636f213ad037108f42301f21f213dbdac4dbce977813aea62cf9cee9f74432e1475e11ce22 0001-check-result-from-res_mkquery.patch -b3d62e1dc83586c5babd68491dc6d0c8022b4bc234cdaf45726a0ebe35ce32ec85a39a69949bffa37110f0a4d8af8c9ecc5c1e9d76a0b131f20e6013a43feff3 fix-failure-to-obtain-EOWNERDEAD-status-for-process-shared-robust-mutexes.patch +sha512sums="9e923572c0d6bad3dc2d2646d4b0699c10b477ce6300ac6c6224895192a90667f581ddf6eda2ab8c4c16f47bde4bccb03bb90478638d136d9df721430f4d0163 musl-1.1.15.tar.gz 8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f ldconfig 062bb49fa54839010acd4af113e20f7263dde1c8a2ca359b5fb2661ef9ed9d84a0f7c3bc10c25dcfa10bb3c5a4874588dff636ac43d5dbb3d748d75400756d0b __stack_chk_fail_local.c 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d getconf.c diff --git a/main/musl/fix-failure-to-obtain-EOWNERDEAD-status-for-process-shared-robust-mutexes.patch b/main/musl/fix-failure-to-obtain-EOWNERDEAD-status-for-process-shared-robust-mutexes.patch deleted file mode 100644 index 445fa80455..0000000000 --- a/main/musl/fix-failure-to-obtain-EOWNERDEAD-status-for-process-shared-robust-mutexes.patch +++ /dev/null @@ -1,69 +0,0 @@ -commit 384d103d94dba0472a587861f67d7ed6e8955f86 -Author: Rich Felker <dalias@aerifal.cx> -Date: Mon Jun 27 15:18:13 2016 -0400 - - fix failure to obtain EOWNERDEAD status for process-shared robust mutexes - - Linux's documentation (robust-futex-ABI.txt) claims that, when a - process dies with a futex on the robust list, bit 30 (0x40000000) is - set to indicate the status. however, what actually happens is that - bits 0-30 are replaced with the value 0x40000000, i.e. bits 0-29 - (containing the old owner tid) are cleared at the same time bit 30 is - set. - - our userspace-side code for robust mutexes was written based on that - documentation, assuming that kernel would never produce a futex value - of 0x40000000, since the low (owner) bits would always be non-zero. - commit d338b506e39b1e2c68366b12be90704c635602ce introduced this - assumption explicitly while fixing another bug in how non-recoverable - status for robust mutexes was tracked. presumably the tests conducted - at that time only checked non-process-shared robust mutexes, which are - handled in pthread_exit (which implemented the documented kernel - protocol, not the actual one) rather than by the kernel. - - change pthread_exit robust list processing to match the kernel - behavior, clearing bits 0-29 while setting bit 30, and use the value - 0x7fffffff instead of 0x40000000 to encode non-recoverable status. the - choice of value here is arbitrary; any value with at least one of bits - 0-29 set should work just as well, - -diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c -index e7df34a..9f6b98e 100644 ---- a/src/thread/pthread_create.c -+++ b/src/thread/pthread_create.c -@@ -79,7 +79,7 @@ _Noreturn void __pthread_exit(void *result) - int priv = (m->_m_type & 128) ^ 128; - self->robust_list.pending = rp; - self->robust_list.head = *rp; -- int cont = a_swap(&m->_m_lock, self->tid|0x40000000); -+ int cont = a_swap(&m->_m_lock, 0x40000000); - self->robust_list.pending = 0; - if (cont < 0 || waiters) - __wake(&m->_m_lock, 1, priv); -diff --git a/src/thread/pthread_mutex_trylock.c b/src/thread/pthread_mutex_trylock.c -index 0df3ce2..54876a6 100644 ---- a/src/thread/pthread_mutex_trylock.c -+++ b/src/thread/pthread_mutex_trylock.c -@@ -14,7 +14,7 @@ int __pthread_mutex_trylock_owner(pthread_mutex_t *m) - m->_m_count++; - return 0; - } -- if (own == 0x40000000) return ENOTRECOVERABLE; -+ if (own == 0x7fffffff) return ENOTRECOVERABLE; - - if (m->_m_type & 128) { - if (!self->robust_list.off) { -diff --git a/src/thread/pthread_mutex_unlock.c b/src/thread/pthread_mutex_unlock.c -index 02da92a..7dd00d2 100644 ---- a/src/thread/pthread_mutex_unlock.c -+++ b/src/thread/pthread_mutex_unlock.c -@@ -24,7 +24,7 @@ int __pthread_mutex_unlock(pthread_mutex_t *m) - if (next != &self->robust_list.head) *(volatile void *volatile *) - ((char *)next - sizeof(void *)) = prev; - } -- cont = a_swap(&m->_m_lock, (type & 8) ? 0x40000000 : 0); -+ cont = a_swap(&m->_m_lock, (type & 8) ? 0x7fffffff : 0); - if (type != PTHREAD_MUTEX_NORMAL && !priv) { - self->robust_list.pending = 0; - __vm_unlock(); - |