diff options
author | Timo Teräs <timo.teras@iki.fi> | 2016-02-16 06:16:38 +0000 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2016-02-16 06:16:38 +0000 |
commit | 8daae2d91da7ea2065b57e71950970efbeba80a2 (patch) | |
tree | cf4e8ec07e53ecc83f1fce05dd0b56a71234ce07 /main/musl | |
parent | b794eecf4cda65b993101985b5cbacf1ee263a12 (diff) | |
download | aports-8daae2d91da7ea2065b57e71950970efbeba80a2.tar.bz2 aports-8daae2d91da7ea2065b57e71950970efbeba80a2.tar.xz |
main/musl: upgrade to 1.1.13
Diffstat (limited to 'main/musl')
24 files changed, 5 insertions, 1546 deletions
diff --git a/main/musl/0001-fix-single-byte-overflow-of-malloc-d-buffer-in-getde.patch b/main/musl/0001-fix-single-byte-overflow-of-malloc-d-buffer-in-getde.patch deleted file mode 100644 index 4d950ab3dd..0000000000 --- a/main/musl/0001-fix-single-byte-overflow-of-malloc-d-buffer-in-getde.patch +++ /dev/null @@ -1,32 +0,0 @@ -From b114190b29417fff6f701eea3a3b3b6030338280 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Sat, 24 Oct 2015 22:42:10 -0400 -Subject: [PATCH] fix single-byte overflow of malloc'd buffer in getdelim - -the buffer enlargement logic here accounted for the terminating null -byte, but not for the possibility of hitting the delimiter in the -buffer-refill code path that uses getc_unlocked, in which case two -additional bytes (the delimiter and the null termination) are written -without another chance to enlarge the buffer. - -this patch and the corresponding bug report are by Felix Janda. ---- - src/stdio/getdelim.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/stdio/getdelim.c b/src/stdio/getdelim.c -index a88c393..3077490 100644 ---- a/src/stdio/getdelim.c -+++ b/src/stdio/getdelim.c -@@ -27,7 +27,7 @@ ssize_t getdelim(char **restrict s, size_t *restrict n, int delim, FILE *restric - for (;;) { - z = memchr(f->rpos, delim, f->rend - f->rpos); - k = z ? z - f->rpos + 1 : f->rend - f->rpos; -- if (i+k >= *n) { -+ if (i+k+1 >= *n) { - if (k >= SIZE_MAX/2-i) goto oom; - *n = i+k+2; - if (*n < SIZE_MAX/4) *n *= 2; --- -2.7.0 - diff --git a/main/musl/0002-safely-handle-failure-to-open-hosts-services-resolv..patch b/main/musl/0002-safely-handle-failure-to-open-hosts-services-resolv..patch deleted file mode 100644 index 14dc3ada98..0000000000 --- a/main/musl/0002-safely-handle-failure-to-open-hosts-services-resolv..patch +++ /dev/null @@ -1,119 +0,0 @@ -From 2683e267fa6c20d2e7a498a85f79a1dfc4301f23 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Mon, 26 Oct 2015 18:42:22 -0400 -Subject: [PATCH] safely handle failure to open hosts, services, resolv.conf - files - -previously, transient failures like fd exhaustion or other -resource-related errors were treated the same as non-existence of -these files, leading to fallbacks or false-negative results. in -particular: - -- failure to open hosts resulted in fallback to dns, possibly yielding - EAI_NONAME for a hostname that should be defined locally, or an - unwanted result from dns that the hosts file was intended to - replace. - -- failure to open services resulted in EAI_SERVICE. - -- failure to open resolv.conf resulted in querying localhost rather - than the configured nameservers. - -now, only permanent errors trigger the fallback behaviors above; all -other errors are reportable to the caller as EAI_SYSTEM. ---- - src/network/lookup_name.c | 10 +++++++++- - src/network/lookup_serv.c | 10 +++++++++- - src/network/res_msend.c | 13 +++++++++++-- - 3 files changed, 29 insertions(+), 4 deletions(-) - -diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c -index 0225a93..df9e623 100644 ---- a/src/network/lookup_name.c -+++ b/src/network/lookup_name.c -@@ -9,6 +9,7 @@ - #include <fcntl.h> - #include <unistd.h> - #include <pthread.h> -+#include <errno.h> - #include "lookup.h" - #include "stdio_impl.h" - #include "syscall.h" -@@ -51,7 +52,14 @@ static int name_from_hosts(struct address buf[static MAXADDRS], char canon[stati - int cnt = 0; - unsigned char _buf[1032]; - FILE _f, *f = __fopen_rb_ca("/etc/hosts", &_f, _buf, sizeof _buf); -- if (!f) return 0; -+ if (!f) switch (errno) { -+ case ENOENT: -+ case ENOTDIR: -+ case EACCES: -+ return 0; -+ default: -+ return EAI_SYSTEM; -+ } - while (fgets(line, sizeof line, f) && cnt < MAXADDRS) { - char *p, *z; - -diff --git a/src/network/lookup_serv.c b/src/network/lookup_serv.c -index 4faa5bc..66ebaea 100644 ---- a/src/network/lookup_serv.c -+++ b/src/network/lookup_serv.c -@@ -4,6 +4,7 @@ - #include <ctype.h> - #include <string.h> - #include <fcntl.h> -+#include <errno.h> - #include "lookup.h" - #include "stdio_impl.h" - -@@ -69,7 +70,14 @@ int __lookup_serv(struct service buf[static MAXSERVS], const char *name, int pro - - unsigned char _buf[1032]; - FILE _f, *f = __fopen_rb_ca("/etc/services", &_f, _buf, sizeof _buf); -- if (!f) return EAI_SERVICE; -+ if (!f) switch (errno) { -+ case ENOENT: -+ case ENOTDIR: -+ case EACCES: -+ return EAI_SERVICE; -+ default: -+ return EAI_SYSTEM; -+ } - - while (fgets(line, sizeof line, f) && cnt < MAXSERVS) { - if ((p=strchr(line, '#'))) *p++='\n', *p=0; -diff --git a/src/network/res_msend.c b/src/network/res_msend.c -index 35f106d..d0e8e48 100644 ---- a/src/network/res_msend.c -+++ b/src/network/res_msend.c -@@ -54,7 +54,15 @@ int __res_msend(int nqueries, const unsigned char *const *queries, - - /* Get nameservers from resolv.conf, fallback to localhost */ - f = __fopen_rb_ca("/etc/resolv.conf", &_f, _buf, sizeof _buf); -- if (f) for (nns=0; nns<3 && fgets(line, sizeof line, f); ) { -+ if (!f) switch (errno) { -+ case ENOENT: -+ case ENOTDIR: -+ case EACCES: -+ goto no_resolv_conf; -+ default: -+ return -1; -+ } -+ for (nns=0; nns<3 && fgets(line, sizeof line, f); ) { - if (!strncmp(line, "options", 7) && isspace(line[7])) { - unsigned long x; - char *p, *z; -@@ -92,7 +100,8 @@ int __res_msend(int nqueries, const unsigned char *const *queries, - } - } - } -- if (f) __fclose_ca(f); -+ __fclose_ca(f); -+no_resolv_conf: - if (!nns) { - ns[0].sin.sin_family = AF_INET; - ns[0].sin.sin_port = htons(53); --- -2.7.0 - diff --git a/main/musl/0003-getnameinfo-make-size-check-not-fail-for-bigger-size.patch b/main/musl/0003-getnameinfo-make-size-check-not-fail-for-bigger-size.patch deleted file mode 100644 index 1b4192a740..0000000000 --- a/main/musl/0003-getnameinfo-make-size-check-not-fail-for-bigger-size.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 6eada2edb302ff061be8546b23c9cb836621d122 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens <hauke@hauke-m.de> -Date: Mon, 26 Oct 2015 23:03:55 +0100 -Subject: [PATCH] getnameinfo: make size check not fail for bigger sizes - -getnameinfo() compares the size of the given struct sockaddr with -sizeof(struct sockaddr_in) and sizeof(struct sockaddr_in6) depending on -the net family. When you add a sockaddr of size sizeof(struct -sockaddr_storage) this function will fail because the size of the -sockaddr is too big. Change the check that it only fails if the size is -too small, but make it work when it is too big for example when someone -calls this function with a struct sockaddr_storage and its size. -This fixes a problem with IoTivity 1.0.0 and musl. - -glibc and bionic are only failing if it is smaller, net/freebsd -implemented the != check. - -Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> ---- - src/network/getnameinfo.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/network/getnameinfo.c b/src/network/getnameinfo.c -index 3484fc6..5e6fae3 100644 ---- a/src/network/getnameinfo.c -+++ b/src/network/getnameinfo.c -@@ -135,13 +135,13 @@ int getnameinfo(const struct sockaddr *restrict sa, socklen_t sl, - switch (af) { - case AF_INET: - a = (void *)&((struct sockaddr_in *)sa)->sin_addr; -- if (sl != sizeof(struct sockaddr_in)) return EAI_FAMILY; -+ if (sl < sizeof(struct sockaddr_in)) return EAI_FAMILY; - mkptr4(ptr, a); - scopeid = 0; - break; - case AF_INET6: - a = (void *)&((struct sockaddr_in6 *)sa)->sin6_addr; -- if (sl != sizeof(struct sockaddr_in6)) return EAI_FAMILY; -+ if (sl < sizeof(struct sockaddr_in6)) return EAI_FAMILY; - if (memcmp(a, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12)) - mkptr6(ptr, a); - else --- -2.7.0 - diff --git a/main/musl/0004-properly-access-mcontext_t-program-counter-in-cancel.patch b/main/musl/0004-properly-access-mcontext_t-program-counter-in-cancel.patch deleted file mode 100644 index d699892c08..0000000000 --- a/main/musl/0004-properly-access-mcontext_t-program-counter-in-cancel.patch +++ /dev/null @@ -1,165 +0,0 @@ -From cb1bf2f321b45a06447133b3db00621b7300c456 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Mon, 2 Nov 2015 12:39:28 -0500 -Subject: [PATCH] properly access mcontext_t program counter in cancellation - handler - -using the actual mcontext_t definition rather than an overlaid pointer -array both improves correctness/readability and eliminates some ugly -hacks for archs with 64-bit registers bit 32-bit program counter. - -also fix UB due to comparison of pointers not in a common array -object. ---- - arch/aarch64/pthread_arch.h | 2 +- - arch/arm/pthread_arch.h | 2 +- - arch/i386/pthread_arch.h | 2 +- - arch/microblaze/pthread_arch.h | 2 +- - arch/mips/pthread_arch.h | 2 +- - arch/or1k/pthread_arch.h | 3 +-- - arch/powerpc/pthread_arch.h | 3 +-- - arch/sh/pthread_arch.h | 2 +- - arch/x32/pthread_arch.h | 2 +- - arch/x86_64/pthread_arch.h | 2 +- - src/thread/pthread_cancel.c | 7 ++++--- - 11 files changed, 14 insertions(+), 15 deletions(-) - -diff --git a/arch/aarch64/pthread_arch.h b/arch/aarch64/pthread_arch.h -index 74276f4..b2e2d8f 100644 ---- a/arch/aarch64/pthread_arch.h -+++ b/arch/aarch64/pthread_arch.h -@@ -8,4 +8,4 @@ static inline struct pthread *__pthread_self() - #define TLS_ABOVE_TP - #define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 16) - --#define CANCEL_REG_IP 33 -+#define MC_PC pc -diff --git a/arch/arm/pthread_arch.h b/arch/arm/pthread_arch.h -index 4a4dd09..8b8a7fb 100644 ---- a/arch/arm/pthread_arch.h -+++ b/arch/arm/pthread_arch.h -@@ -27,4 +27,4 @@ static inline pthread_t __pthread_self() - #define TLS_ABOVE_TP - #define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) - --#define CANCEL_REG_IP 18 -+#define MC_PC arm_pc -diff --git a/arch/i386/pthread_arch.h b/arch/i386/pthread_arch.h -index 1c06c76..7f38a56 100644 ---- a/arch/i386/pthread_arch.h -+++ b/arch/i386/pthread_arch.h -@@ -7,4 +7,4 @@ static inline struct pthread *__pthread_self() - - #define TP_ADJ(p) (p) - --#define CANCEL_REG_IP 14 -+#define MC_PC gregs[REG_EIP] -diff --git a/arch/microblaze/pthread_arch.h b/arch/microblaze/pthread_arch.h -index 259d3d6..08d1ba7 100644 ---- a/arch/microblaze/pthread_arch.h -+++ b/arch/microblaze/pthread_arch.h -@@ -7,4 +7,4 @@ static inline struct pthread *__pthread_self() - - #define TP_ADJ(p) (p) - --#define CANCEL_REG_IP 32 -+#define MC_PC regs.pc -diff --git a/arch/mips/pthread_arch.h b/arch/mips/pthread_arch.h -index 93edbd4..8a49965 100644 ---- a/arch/mips/pthread_arch.h -+++ b/arch/mips/pthread_arch.h -@@ -16,4 +16,4 @@ static inline struct pthread *__pthread_self() - - #define DTP_OFFSET 0x8000 - --#define CANCEL_REG_IP (3-(union {int __i; char __b;}){1}.__b) -+#define MC_PC pc -diff --git a/arch/or1k/pthread_arch.h b/arch/or1k/pthread_arch.h -index ad63169..7decd76 100644 ---- a/arch/or1k/pthread_arch.h -+++ b/arch/or1k/pthread_arch.h -@@ -14,5 +14,4 @@ static inline struct pthread *__pthread_self() - #define TLS_ABOVE_TP - #define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread)) - --/* word-offset to 'pc' in mcontext_t */ --#define CANCEL_REG_IP 32 -+#define MC_PC regs.pc -diff --git a/arch/powerpc/pthread_arch.h b/arch/powerpc/pthread_arch.h -index bb7405d..7c5c4fa 100644 ---- a/arch/powerpc/pthread_arch.h -+++ b/arch/powerpc/pthread_arch.h -@@ -15,9 +15,8 @@ static inline struct pthread *__pthread_self() - - #define DTP_OFFSET 0x8000 - --// offset of the PC register in mcontext_t, divided by the system wordsize - // the kernel calls the ip "nip", it's the first saved value after the 32 - // GPRs. --#define CANCEL_REG_IP 32 -+#define MC_PC gregs[32] - - #define CANARY canary_at_end -diff --git a/arch/sh/pthread_arch.h b/arch/sh/pthread_arch.h -index 65c389f..2756e7e 100644 ---- a/arch/sh/pthread_arch.h -+++ b/arch/sh/pthread_arch.h -@@ -8,4 +8,4 @@ static inline struct pthread *__pthread_self() - #define TLS_ABOVE_TP - #define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) - --#define CANCEL_REG_IP 17 -+#define MC_PC sc_pc -diff --git a/arch/x32/pthread_arch.h b/arch/x32/pthread_arch.h -index 033bfd6..ecb0bbf 100644 ---- a/arch/x32/pthread_arch.h -+++ b/arch/x32/pthread_arch.h -@@ -7,6 +7,6 @@ static inline struct pthread *__pthread_self() - - #define TP_ADJ(p) (p) - --#define CANCEL_REG_IP 32 -+#define MC_PC gregs[REG_RIP] - - #define CANARY canary2 -diff --git a/arch/x86_64/pthread_arch.h b/arch/x86_64/pthread_arch.h -index 29e4590..c61509c 100644 ---- a/arch/x86_64/pthread_arch.h -+++ b/arch/x86_64/pthread_arch.h -@@ -7,4 +7,4 @@ static inline struct pthread *__pthread_self() - - #define TP_ADJ(p) (p) - --#define CANCEL_REG_IP 16 -+#define MC_PC gregs[REG_RIP] -diff --git a/src/thread/pthread_cancel.c b/src/thread/pthread_cancel.c -index 0151a1a..6eaf72c 100644 ---- a/src/thread/pthread_cancel.c -+++ b/src/thread/pthread_cancel.c -@@ -1,3 +1,4 @@ -+#define _GNU_SOURCE - #include <string.h> - #include "pthread_impl.h" - #include "syscall.h" -@@ -61,15 +62,15 @@ static void cancel_handler(int sig, siginfo_t *si, void *ctx) - { - pthread_t self = __pthread_self(); - ucontext_t *uc = ctx; -- const char *ip = ((char **)&uc->uc_mcontext)[CANCEL_REG_IP]; -+ uintptr_t pc = uc->uc_mcontext.MC_PC; - - a_barrier(); - if (!self->cancel || self->canceldisable == PTHREAD_CANCEL_DISABLE) return; - - _sigaddset(&uc->uc_sigmask, SIGCANCEL); - -- if (self->cancelasync || ip >= __cp_begin && ip < __cp_end) { -- ((char **)&uc->uc_mcontext)[CANCEL_REG_IP] = (char *)__cp_cancel; -+ if (self->cancelasync || pc >= (uintptr_t)__cp_begin && pc < (uintptr_t)__cp_end) { -+ uc->uc_mcontext.MC_PC = (uintptr_t)__cp_cancel; - return; - } - --- -2.7.0 - diff --git a/main/musl/0005-use-explicit-__cp_cancel-label-in-cancellable-syscal.patch b/main/musl/0005-use-explicit-__cp_cancel-label-in-cancellable-syscal.patch deleted file mode 100644 index f4d7637d00..0000000000 --- a/main/musl/0005-use-explicit-__cp_cancel-label-in-cancellable-syscal.patch +++ /dev/null @@ -1,220 +0,0 @@ -From 36e8b6a28be5d4ffad966386b1e1c0d0dc6ca11a Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Mon, 2 Nov 2015 16:16:00 -0500 -Subject: [PATCH] use explicit __cp_cancel label in cancellable syscall asm for - all archs - -previously, only archs that needed to do stack cleanup defined a -__cp_cancel label for acting on cancellation in their syscall asm, and -a default definition was provided by a weak alias to __cancel, the C -function. this resulted in wrong codegen for arm on gcc versions -affected by pr 68178 and possibly similar issues (like pr 66609) on -other archs, and also created an inconsistency where the __cp_begin -and __cp_end labels were treated as const data but __cp_cancel was -treated as a function. this in turn caused incorrect code generation -on archs where function pointers point to function descriptors rather -than code (for now, only sh/fdpic). ---- - src/thread/aarch64/syscall_cp.s | 7 +++---- - src/thread/microblaze/syscall_cp.s | 4 +++- - src/thread/or1k/syscall_cp.s | 5 ++++- - src/thread/powerpc/syscall_cp.s | 4 +++- - src/thread/pthread_cancel.c | 10 ++-------- - src/thread/sh/syscall_cp.s | 22 +++++++++++----------- - src/thread/x32/syscall_cp.s | 4 +++- - src/thread/x86_64/syscall_cp.s | 4 +++- - 8 files changed, 32 insertions(+), 28 deletions(-) - -diff --git a/src/thread/aarch64/syscall_cp.s b/src/thread/aarch64/syscall_cp.s -index 30e677c..41db68a 100644 ---- a/src/thread/aarch64/syscall_cp.s -+++ b/src/thread/aarch64/syscall_cp.s -@@ -17,7 +17,7 @@ - __syscall_cp_asm: - __cp_begin: - ldr w0,[x0] -- cbnz w0,1f -+ cbnz w0,__cp_cancel - mov x8,x1 - mov x0,x2 - mov x1,x3 -@@ -28,6 +28,5 @@ __cp_begin: - svc 0 - __cp_end: - ret -- -- // cbnz might not be able to jump far enough --1: b __cancel -+__cp_cancel: -+ b __cancel -diff --git a/src/thread/microblaze/syscall_cp.s b/src/thread/microblaze/syscall_cp.s -index 51599c9..b0df61c 100644 ---- a/src/thread/microblaze/syscall_cp.s -+++ b/src/thread/microblaze/syscall_cp.s -@@ -11,7 +11,7 @@ - __syscall_cp_asm: - __cp_begin: - lwi r5, r5, 0 -- bnei r5, __cancel -+ bnei r5, __cp_cancel - addi r12, r6, 0 - add r5, r7, r0 - add r6, r8, r0 -@@ -23,3 +23,5 @@ __cp_begin: - __cp_end: - rtsd r15, 8 - nop -+__cp_cancel: -+ bri __cancel -diff --git a/src/thread/or1k/syscall_cp.s b/src/thread/or1k/syscall_cp.s -index 2c0bf0e..7951166 100644 ---- a/src/thread/or1k/syscall_cp.s -+++ b/src/thread/or1k/syscall_cp.s -@@ -12,7 +12,7 @@ __syscall_cp_asm: - __cp_begin: - l.lwz r3, 0(r3) - l.sfeqi r3, 0 -- l.bnf __cancel -+ l.bnf __cp_cancel - l.ori r11, r4, 0 - l.ori r3, r5, 0 - l.ori r4, r6, 0 -@@ -24,3 +24,6 @@ __cp_begin: - __cp_end: - l.jr r9 - l.nop -+__cp_cancel: -+ l.j __cancel -+ l.nop -diff --git a/src/thread/powerpc/syscall_cp.s b/src/thread/powerpc/syscall_cp.s -index 20b5e0a..77f8938 100644 ---- a/src/thread/powerpc/syscall_cp.s -+++ b/src/thread/powerpc/syscall_cp.s -@@ -38,7 +38,7 @@ __cp_begin: - cmpwi cr7, 0, 0 #compare r0 with 0, store result in cr7. - beq+ cr7, 1f #jump to label 1 if r0 was 0 - -- b __cancel #else call cancel -+ b __cp_cancel #else call cancel - 1: - #ok, the cancel flag was not set - # syscall: number goes to r0, the rest 3-8 -@@ -55,3 +55,5 @@ __cp_end: - #else negate result. - neg 3, 3 - blr -+__cp_cancel: -+ b __cancel -diff --git a/src/thread/pthread_cancel.c b/src/thread/pthread_cancel.c -index 6eaf72c..c4631f0 100644 ---- a/src/thread/pthread_cancel.c -+++ b/src/thread/pthread_cancel.c -@@ -7,7 +7,7 @@ - #ifdef SHARED - __attribute__((__visibility__("hidden"))) - #endif --long __cancel(), __cp_cancel(), __syscall_cp_asm(), __syscall_cp_c(); -+long __cancel(), __syscall_cp_asm(), __syscall_cp_c(); - - long __cancel() - { -@@ -18,12 +18,6 @@ long __cancel() - return -ECANCELED; - } - --/* If __syscall_cp_asm has adjusted the stack pointer, it must provide a -- * definition of __cp_cancel to undo those adjustments and call __cancel. -- * Otherwise, __cancel provides a definition for __cp_cancel. */ -- --weak_alias(__cancel, __cp_cancel); -- - long __syscall_cp_asm(volatile void *, syscall_arg_t, - syscall_arg_t, syscall_arg_t, syscall_arg_t, - syscall_arg_t, syscall_arg_t, syscall_arg_t); -@@ -56,7 +50,7 @@ static void _sigaddset(sigset_t *set, int sig) - #ifdef SHARED - __attribute__((__visibility__("hidden"))) - #endif --extern const char __cp_begin[1], __cp_end[1]; -+extern const char __cp_begin[1], __cp_end[1], __cp_cancel[1]; - - static void cancel_handler(int sig, siginfo_t *si, void *ctx) - { -diff --git a/src/thread/sh/syscall_cp.s b/src/thread/sh/syscall_cp.s -index c3cafac..bb848ef 100644 ---- a/src/thread/sh/syscall_cp.s -+++ b/src/thread/sh/syscall_cp.s -@@ -14,17 +14,8 @@ __syscall_cp_asm: - __cp_begin: - mov.l @r4, r4 - tst r4, r4 -- bt 2f -- -- mov.l L1, r0 -- braf r0 -- nop --1: -- --.align 2 --L1: .long __cancel@PLT-(1b-.) -- --2: mov r5, r3 -+ bf __cp_cancel -+ mov r5, r3 - mov r6, r4 - mov r7, r5 - mov.l @r15, r6 -@@ -43,3 +34,12 @@ __cp_end: - - rts - nop -+ -+__cp_cancel: -+ mov.l 2f, r0 -+ braf r0 -+ nop -+1: -+ -+.align 2 -+2: .long __cancel@PCREL-(1b-.) -diff --git a/src/thread/x32/syscall_cp.s b/src/thread/x32/syscall_cp.s -index 79709a5..9805af0 100644 ---- a/src/thread/x32/syscall_cp.s -+++ b/src/thread/x32/syscall_cp.s -@@ -14,7 +14,7 @@ __syscall_cp_internal: - __cp_begin: - mov (%rdi),%eax - test %eax,%eax -- jnz __cancel -+ jnz __cp_cancel - mov %rdi,%r11 - mov %rsi,%rax - mov %rdx,%rdi -@@ -27,3 +27,5 @@ __cp_begin: - syscall - __cp_end: - ret -+__cp_cancel: -+ jmp __cancel -diff --git a/src/thread/x86_64/syscall_cp.s b/src/thread/x86_64/syscall_cp.s -index 1a0fd5d..4f10171 100644 ---- a/src/thread/x86_64/syscall_cp.s -+++ b/src/thread/x86_64/syscall_cp.s -@@ -14,7 +14,7 @@ __syscall_cp_asm: - __cp_begin: - mov (%rdi),%eax - test %eax,%eax -- jnz __cancel -+ jnz __cp_cancel - mov %rdi,%r11 - mov %rsi,%rax - mov %rdx,%rdi -@@ -27,3 +27,5 @@ __cp_begin: - syscall - __cp_end: - ret -+__cp_cancel: -+ jmp __cancel --- -2.7.0 - diff --git a/main/musl/0006-prevent-allocs-than-PTRDIFF_MAX-via-mremap.patch b/main/musl/0006-prevent-allocs-than-PTRDIFF_MAX-via-mremap.patch deleted file mode 100644 index d373ac9114..0000000000 --- a/main/musl/0006-prevent-allocs-than-PTRDIFF_MAX-via-mremap.patch +++ /dev/null @@ -1,39 +0,0 @@ -From f9ecb6bfa1dc9f93a10dad97a158e6b8334c586c Mon Sep 17 00:00:00 2001 -From: Daniel Micay <danielmicay@gmail.com> -Date: Sat, 31 Oct 2015 05:14:45 -0400 -Subject: [PATCH] prevent allocs than PTRDIFF_MAX via mremap - -It's quite feasible for this to happen via MREMAP_MAYMOVE. ---- - src/mman/mremap.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/src/mman/mremap.c b/src/mman/mremap.c -index 596c45f..1096ace 100644 ---- a/src/mman/mremap.c -+++ b/src/mman/mremap.c -@@ -1,5 +1,7 @@ - #include <unistd.h> - #include <sys/mman.h> -+#include <errno.h> -+#include <stdint.h> - #include <stdarg.h> - #include "syscall.h" - #include "libc.h" -@@ -8,7 +10,12 @@ void *__mremap(void *old_addr, size_t old_len, size_t new_len, int flags, ...) - { - va_list ap; - void *new_addr; -- -+ -+ if (new_len >= PTRDIFF_MAX) { -+ errno = ENOMEM; -+ return MAP_FAILED; -+ } -+ - va_start(ap, flags); - new_addr = va_arg(ap, void *); - va_end(ap); --- -2.7.0 - diff --git a/main/musl/0007-fix-mremap-memory-synchronization-and-use-of-variadi.patch b/main/musl/0007-fix-mremap-memory-synchronization-and-use-of-variadi.patch deleted file mode 100644 index f88888f10d..0000000000 --- a/main/musl/0007-fix-mremap-memory-synchronization-and-use-of-variadi.patch +++ /dev/null @@ -1,61 +0,0 @@ -From fda365a53074f97f3213caefe70ea13297acecb2 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Mon, 2 Nov 2015 16:37:51 -0500 -Subject: [PATCH] fix mremap memory synchronization and use of variadic - argument - -since mremap with the MREMAP_FIXED flag is an operation that unmaps -existing mappings, it needs to use the vm lock mechanism to ensure -that any in-progress synchronization operations using vm identities -from before the call have finished. - -also, the variadic argument was erroneously being read even if the -MREMAP_FIXED flag was not passed. in practice this didn't break -anything, but it's UB and in theory LTO could turn it into a hard -error. ---- - src/mman/mremap.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - -diff --git a/src/mman/mremap.c b/src/mman/mremap.c -index 1096ace..ce4e8ea 100644 ---- a/src/mman/mremap.c -+++ b/src/mman/mremap.c -@@ -1,3 +1,4 @@ -+#define _GNU_SOURCE - #include <unistd.h> - #include <sys/mman.h> - #include <errno.h> -@@ -6,19 +7,25 @@ - #include "syscall.h" - #include "libc.h" - -+static void dummy(void) { } -+weak_alias(dummy, __vm_wait); -+ - void *__mremap(void *old_addr, size_t old_len, size_t new_len, int flags, ...) - { - va_list ap; -- void *new_addr; -+ void *new_addr = 0; - - if (new_len >= PTRDIFF_MAX) { - errno = ENOMEM; - return MAP_FAILED; - } - -- va_start(ap, flags); -- new_addr = va_arg(ap, void *); -- va_end(ap); -+ if (flags & MREMAP_FIXED) { -+ __vm_wait(); -+ va_start(ap, flags); -+ new_addr = va_arg(ap, void *); -+ va_end(ap); -+ } - - return (void *)syscall(SYS_mremap, old_addr, old_len, new_len, flags, new_addr); - } --- -2.7.0 - diff --git a/main/musl/0008-have-configure-check-add-ffunction-sections-and-fdat.patch b/main/musl/0008-have-configure-check-add-ffunction-sections-and-fdat.patch deleted file mode 100644 index d74f5bd10f..0000000000 --- a/main/musl/0008-have-configure-check-add-ffunction-sections-and-fdat.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 27c1eccf33ce5cb7508ef5e541daa9b6441b4a51 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Wed, 4 Nov 2015 13:24:11 -0500 -Subject: [PATCH] have configure check/add -ffunction-sections and - -fdata-sections - -based on patch by Denys Vlasenko. the original intent for using these -options was to enable linking optimizations. these are immediately -available for static linking applications to libc.a, and will also be -used for linking libc.so in a subsequent commit. - -in addition to the original motives, this change works around a whole -class of toolchain bugs where the compiler generates relative address -expressions using a weak symbol and the assembler "optimizes out" the -relocation which should result by using the weak definition. (see gas -pr 18561 and gcc pr 66609, 68178, etc. for examples.) by having -different functions and data objects in their own sections, all -relative address expressions are cross-section and thus cannot be -resolved to constants until link time. this allows us to retain -support for affected compiler/assembler versions without invasive -and fragile source-level workarounds. ---- - configure | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/configure b/configure -index 3e536f5..1e5c4b3 100755 ---- a/configure -+++ b/configure -@@ -437,6 +437,17 @@ tryflag CFLAGS_AUTO -fno-unwind-tables - tryflag CFLAGS_AUTO -fno-asynchronous-unwind-tables - - # -+# Attempt to put each function and each data object in its own -+# section. This both allows additional size optimizations at link -+# time and works around a dangerous class of compiler/assembler bugs -+# whereby relative address expressions are constant-folded by the -+# assembler even when one or more of the symbols involved is -+# replaceable. See gas pr 18561 and gcc pr 66609, 68178, etc. -+# -+tryflag CFLAGS_AUTO -ffunction-sections -+tryflag CFLAGS_AUTO -fdata-sections -+ -+# - # On x86, make sure we don't have incompatible instruction set - # extensions enabled by default. This is bad for making static binaries. - # We cheat and use i486 rather than i386 because i386 really does not --- -2.7.0 - diff --git a/main/musl/0009-have-configure-check-add-linker-options-to-reduce-si.patch b/main/musl/0009-have-configure-check-add-linker-options-to-reduce-si.patch deleted file mode 100644 index a9307e62d9..0000000000 --- a/main/musl/0009-have-configure-check-add-linker-options-to-reduce-si.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 2efd38e8c70f00ca6bbc1eb5199aa507d45436cf Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Wed, 4 Nov 2015 21:39:13 -0500 -Subject: [PATCH] have configure check/add linker options to reduce size lost - to padding - -based on patch by Denys Vlasenko. sorting sections and common data -symbols by alignment acts as an approximation for optimal packing, -which the linker does not actually support. ---- - configure | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/configure b/configure -index 1e5c4b3..d04c860 100755 ---- a/configure -+++ b/configure -@@ -515,6 +515,12 @@ CFLAGS_AUTO="$CFLAGS_AUTO -include vis.h" - CFLAGS_AUTO="${CFLAGS_AUTO# }" - fi - -+# Reduce space lost to padding for alignment purposes by sorting data -+# objects according to their alignment reqirements. This approximates -+# optimal packing. -+tryldflag LDFLAGS_AUTO -Wl,--sort-section,alignment -+tryldflag LDFLAGS_AUTO -Wl,--sort-common -+ - # Some patched GCC builds have these defaults messed up... - tryldflag LDFLAGS_AUTO -Wl,--hash-style=both - --- -2.7.0 - diff --git a/main/musl/0010-have-configure-check-add-gc-sections-linker-option.patch b/main/musl/0010-have-configure-check-add-gc-sections-linker-option.patch deleted file mode 100644 index a9549a2a61..0000000000 --- a/main/musl/0010-have-configure-check-add-gc-sections-linker-option.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 6a851e3ab8a1ae524b2aa6218615ec1c86528e9c Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Wed, 4 Nov 2015 21:40:36 -0500 -Subject: [PATCH] have configure check/add --gc-sections linker option - -this allowing the linker to drop certain weak definitions that are -only used as dummies for static linking. they could be eliminated for -shared library builds using the preprocessor instead, but we are -trying to transition to using the same object files for shared and -static libc, so a link-time solution is preferable. ---- - configure | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/configure b/configure -index d04c860..dece1d0 100755 ---- a/configure -+++ b/configure -@@ -521,6 +521,10 @@ fi - tryldflag LDFLAGS_AUTO -Wl,--sort-section,alignment - tryldflag LDFLAGS_AUTO -Wl,--sort-common - -+# When linking shared library, drop dummy weak definitions that were -+# replaced by strong definitions from other translation units. -+tryldflag LDFLAGS_AUTO -Wl,--gc-sections -+ - # Some patched GCC builds have these defaults messed up... - tryldflag LDFLAGS_AUTO -Wl,--hash-style=both - --- -2.7.0 - diff --git a/main/musl/0011-work-around-toolchains-with-broken-visibility-in-lib.patch b/main/musl/0011-work-around-toolchains-with-broken-visibility-in-lib.patch deleted file mode 100644 index d871e8b991..0000000000 --- a/main/musl/0011-work-around-toolchains-with-broken-visibility-in-lib.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ea1e2c5e18dd0790fb9b2af2bd947f4981736dc2 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Sat, 7 Nov 2015 20:23:49 -0500 -Subject: [PATCH] work around toolchains with broken visibility in - libgcc/libpcc - ---- - configure | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/configure b/configure -index dece1d0..ee21771 100755 ---- a/configure -+++ b/configure -@@ -534,6 +534,11 @@ tryldflag LDFLAGS_AUTO -Wl,--hash-style=both - # runtime library; implementation error is also a possibility. - tryldflag LDFLAGS_AUTO -Wl,--no-undefined - -+# Avoid exporting symbols from compiler runtime libraries. They -+# should be hidden anyway, but some toolchains including old gcc -+# versions built without shared library support and pcc are broken. -+tryldflag LDFLAGS_AUTO -Wl,--exclude-libs=ALL -+ - test "$shared" = "no" || { - # Disable dynamic linking if ld is broken and can't do -Bsymbolic-functions - LDFLAGS_DUMMY= --- -2.7.0 - diff --git a/main/musl/0012-fix-return-value-of-nl_langinfo-for-invalid-item-arg.patch b/main/musl/0012-fix-return-value-of-nl_langinfo-for-invalid-item-arg.patch deleted file mode 100644 index 69a17689de..0000000000 --- a/main/musl/0012-fix-return-value-of-nl_langinfo-for-invalid-item-arg.patch +++ /dev/null @@ -1,46 +0,0 @@ -From a946e8117ed51dd771bd8cac3575fc28a0399a32 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Tue, 10 Nov 2015 23:07:17 -0500 -Subject: [PATCH] fix return value of nl_langinfo for invalid item arguments - -it was wrongly returning a null pointer instead of an empty string. ---- - src/locale/langinfo.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/src/locale/langinfo.c b/src/locale/langinfo.c -index d3c90d9..b2c8569 100644 ---- a/src/locale/langinfo.c -+++ b/src/locale/langinfo.c -@@ -37,23 +37,23 @@ char *__nl_langinfo_l(nl_item item, locale_t loc) - - switch (cat) { - case LC_NUMERIC: -- if (idx > 1) return NULL; -+ if (idx > 1) return ""; - str = c_numeric; - break; - case LC_TIME: -- if (idx > 0x31) return NULL; -+ if (idx > 0x31) return ""; - str = c_time; - break; - case LC_MONETARY: -- if (idx > 0) return NULL; -+ if (idx > 0) return ""; - str = ""; - break; - case LC_MESSAGES: -- if (idx > 3) return NULL; -+ if (idx > 3) return ""; - str = c_messages; - break; - default: -- return NULL; -+ return ""; - } - - for (; idx; idx--, str++) for (; *str; str++); --- -2.7.0 - diff --git a/main/musl/0013-math-explicitly-promote-expressions-to-excess-precis.patch b/main/musl/0013-math-explicitly-promote-expressions-to-excess-precis.patch deleted file mode 100644 index c98d9b52b7..0000000000 --- a/main/musl/0013-math-explicitly-promote-expressions-to-excess-precis.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 8eead3ef18ea71a64ef3cbff8c09bac3b82f1242 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Sat, 21 Nov 2015 21:23:30 +0000 -Subject: [PATCH] math: explicitly promote expressions to excess-precision - types - -a conforming compiler for an arch with excess precision floating point -(FLT_EVAL_METHOD!=0; presently i386 is the only such arch supported) -computes all intermediate results in the types float_t and double_t -rather than the nominal type of the expression. some incorrect -compilers, however, only keep excess precision in registers, and -convert down to the nominal type when spilling intermediate results to -memory, yielding unpredictable results that depend on the compiler's -choices of what/when to spill. in particular, this happens on old gcc -versions with -ffloat-store, which we need in order to work around -bugs where the compiler wrongly keeps explicitly-dropped excess -precision. - -by explicitly converting to double_t where expressions are expected be -be evaluated in double_t precision, we can avoid depending on the -compiler to get types correct when spilling; the nominal and -intermediate precision now match. this commit should not change the -code generated by correct compilers, or by old ones on non-i386 archs -where double_t is defined as double. - -this fixes a serious bug in argument reduction observed on i386 with -gcc 4.2: for values of x outside the unit circle, sin(x) was producing -results outside the interval [-1,1]. changes made in commit -0ce946cf808274c2d6e5419b139e130c8ad4bd30 were likely responsible for -breaking compatibility with this and other old gcc versions. - -patch by Szabolcs Nagy. ---- - src/math/__rem_pio2.c | 2 +- - src/math/__rem_pio2f.c | 2 +- - src/math/hypot.c | 4 ++-- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/math/__rem_pio2.c b/src/math/__rem_pio2.c -index a40db9f..d403f81 100644 ---- a/src/math/__rem_pio2.c -+++ b/src/math/__rem_pio2.c -@@ -118,7 +118,7 @@ int __rem_pio2(double x, double *y) - if (ix < 0x413921fb) { /* |x| ~< 2^20*(pi/2), medium size */ - medium: - /* rint(x/(pi/2)), Assume round-to-nearest. */ -- fn = x*invpio2 + toint - toint; -+ fn = (double_t)x*invpio2 + toint - toint; - n = (int32_t)fn; - r = x - fn*pio2_1; - w = fn*pio2_1t; /* 1st round, good to 85 bits */ -diff --git a/src/math/__rem_pio2f.c b/src/math/__rem_pio2f.c -index f516385..4473c1c 100644 ---- a/src/math/__rem_pio2f.c -+++ b/src/math/__rem_pio2f.c -@@ -51,7 +51,7 @@ int __rem_pio2f(float x, double *y) - /* 25+53 bit pi is good enough for medium size */ - if (ix < 0x4dc90fdb) { /* |x| ~< 2^28*(pi/2), medium size */ - /* Use a specialized rint() to get fn. Assume round-to-nearest. */ -- fn = x*invpio2 + toint - toint; -+ fn = (double_t)x*invpio2 + toint - toint; - n = (int32_t)fn; - *y = x - fn*pio2_1 - fn*pio2_1t; - return n; -diff --git a/src/math/hypot.c b/src/math/hypot.c -index 29ec6a4..6071bf1 100644 ---- a/src/math/hypot.c -+++ b/src/math/hypot.c -@@ -12,10 +12,10 @@ static void sq(double_t *hi, double_t *lo, double x) - { - double_t xh, xl, xc; - -- xc = x*SPLIT; -+ xc = (double_t)x*SPLIT; - xh = x - xc + xc; - xl = x - xh; -- *hi = x*x; -+ *hi = (double_t)x*x; - *lo = xh*xh - *hi + 2*xh*xl + xl*xl; - } - --- -2.7.0 - diff --git a/main/musl/0014-ldso-fix-the-dtv-update-logic-in-__tls_get_new.patch b/main/musl/0014-ldso-fix-the-dtv-update-logic-in-__tls_get_new.patch deleted file mode 100644 index 852cc46732..0000000000 --- a/main/musl/0014-ldso-fix-the-dtv-update-logic-in-__tls_get_new.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 12978acb3066db738c8c15121e81adbb63739876 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Thu, 26 Nov 2015 19:59:46 +0100 -Subject: [PATCH] ldso: fix the dtv update logic in __tls_get_new - -if two or more threads accessed tls in a dso that was loaded after -the threads were created, then __tls_get_new could do out-of-bound -memory access (leading to segfault). - -accidentally byte count was used instead of element count when -the new dtv pointer was computed. (dso->new_dtv is (void**).) - -it is rare that the same dso provides dtv for several threads, -the crash was not observed in practice, but possible to trigger. ---- - src/ldso/dynlink.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c -index 4648e9a..93e7d67 100644 ---- a/src/ldso/dynlink.c -+++ b/src/ldso/dynlink.c -@@ -1280,7 +1280,7 @@ void *__tls_get_new(size_t *v) - /* Get new DTV space from new DSO if needed */ - if (v[0] > (size_t)self->dtv[0]) { - void **newdtv = p->new_dtv + -- (v[0]+1)*sizeof(void *)*a_fetch_add(&p->new_dtv_idx,1); -+ (v[0]+1)*a_fetch_add(&p->new_dtv_idx,1); - memcpy(newdtv, self->dtv, - ((size_t)self->dtv[0]+1) * sizeof(void *)); - newdtv[0] = (void *)v[0]; --- -2.7.0 - diff --git a/main/musl/0015-properly-handle-point-to-point-interfaces-in-getifad.patch b/main/musl/0015-properly-handle-point-to-point-interfaces-in-getifad.patch deleted file mode 100644 index 88279d07f9..0000000000 --- a/main/musl/0015-properly-handle-point-to-point-interfaces-in-getifad.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 7b712844e38bdfc1ef728e257fb8616c16ec4cc8 Mon Sep 17 00:00:00 2001 -From: Jo-Philipp Wich <jow@openwrt.org> -Date: Thu, 19 Nov 2015 21:43:10 +0100 -Subject: [PATCH] properly handle point-to-point interfaces in getifaddrs() - -With point-to-point interfaces, the IFA_ADDRESS netlink attribute -contains the peer address while an extra attribute IFA_LOCAL carries -the actual local interface address. - -Both the glibc and uclibc implementations of getifaddrs() handle this -case by moving the ifa_addr contents to the broadcast/remote address -union and overwriting ifa_addr upon receipt of an IFA_LOCAL attribute. - -This patch adds the same special treatment logic of IFA_LOCAL to -musl's implementation of getifaddrs() in order to align its behaviour -with that of uclibc and glibc. - -Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> ---- - src/network/getifaddrs.c | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) - -diff --git a/src/network/getifaddrs.c b/src/network/getifaddrs.c -index 89a8f72..fed75bd 100644 ---- a/src/network/getifaddrs.c -+++ b/src/network/getifaddrs.c -@@ -162,13 +162,26 @@ static int netlink_msg_to_ifaddr(void *pctx, struct nlmsghdr *h) - for (rta = NLMSG_RTA(h, sizeof(*ifa)); NLMSG_RTAOK(rta, h); rta = RTA_NEXT(rta)) { - switch (rta->rta_type) { - case IFA_ADDRESS: -- copy_addr(&ifs->ifa.ifa_addr, ifa->ifa_family, &ifs->addr, RTA_DATA(rta), RTA_DATALEN(rta), ifa->ifa_index); -+ /* If ifa_addr is already set we, received an IFA_LOCAL before -+ * so treat this as destination address */ -+ if (ifs->ifa.ifa_addr) -+ copy_addr(&ifs->ifa.ifa_dstaddr, ifa->ifa_family, &ifs->ifu, RTA_DATA(rta), RTA_DATALEN(rta), ifa->ifa_index); -+ else -+ copy_addr(&ifs->ifa.ifa_addr, ifa->ifa_family, &ifs->addr, RTA_DATA(rta), RTA_DATALEN(rta), ifa->ifa_index); - break; - case IFA_BROADCAST: -- /* For point-to-point links this is peer, but ifa_broadaddr -- * and ifa_dstaddr are union, so this works for both. */ - copy_addr(&ifs->ifa.ifa_broadaddr, ifa->ifa_family, &ifs->ifu, RTA_DATA(rta), RTA_DATALEN(rta), ifa->ifa_index); - break; -+ case IFA_LOCAL: -+ /* If ifa_addr is set and we get IFA_LOCAL, assume we have -+ * a point-to-point network. Move address to correct field. */ -+ if (ifs->ifa.ifa_addr) { -+ ifs->ifu = ifs->addr; -+ ifs->ifa.ifa_dstaddr = &ifs->ifu.sa; -+ memset(&ifs->addr, 0, sizeof(ifs->addr)); -+ } -+ copy_addr(&ifs->ifa.ifa_addr, ifa->ifa_family, &ifs->addr, RTA_DATA(rta), RTA_DATALEN(rta), ifa->ifa_index); -+ break; - case IFA_LABEL: - if (RTA_DATALEN(rta) < sizeof(ifs->name)) { - memcpy(ifs->name, RTA_DATA(rta), RTA_DATALEN(rta)); --- -2.7.0 - diff --git a/main/musl/0016-fix-tdelete-to-properly-balance-the-tree.patch b/main/musl/0016-fix-tdelete-to-properly-balance-the-tree.patch deleted file mode 100644 index bb3c79cfbf..0000000000 --- a/main/musl/0016-fix-tdelete-to-properly-balance-the-tree.patch +++ /dev/null @@ -1,53 +0,0 @@ -From e4f9d811684011d8a67e363827de39d5f2d3ae5a Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Sat, 5 Dec 2015 21:02:34 +0100 -Subject: [PATCH] fix tdelete to properly balance the tree - -the tsearch data structure is an avl tree, but it did not implement -the deletion operation correctly so the tree could become unbalanced. - -reported by Ed Schouten. ---- - src/search/tsearch_avl.c | 19 ++++++++++++++----- - 1 file changed, 14 insertions(+), 5 deletions(-) - -diff --git a/src/search/tsearch_avl.c b/src/search/tsearch_avl.c -index 8620092..0864460 100644 ---- a/src/search/tsearch_avl.c -+++ b/src/search/tsearch_avl.c -@@ -105,10 +105,13 @@ static struct node *insert(struct node **n, const void *k, - return r; - } - --static struct node *movr(struct node *n, struct node *r) { -- if (!n) -- return r; -- n->right = movr(n->right, r); -+static struct node *remove_rightmost(struct node *n, struct node **rightmost) -+{ -+ if (!n->right) { -+ *rightmost = n; -+ return n->left; -+ } -+ n->right = remove_rightmost(n->right, rightmost); - return balance(n); - } - -@@ -122,7 +125,13 @@ static struct node *remove(struct node **n, const void *k, - c = cmp(k, (*n)->key); - if (c == 0) { - struct node *r = *n; -- *n = movr(r->left, r->right); -+ if (r->left) { -+ r->left = remove_rightmost(r->left, n); -+ (*n)->left = r->left; -+ (*n)->right = r->right; -+ *n = balance(*n); -+ } else -+ *n = r->right; - free(r); - return parent; - } --- -2.7.0 - diff --git a/main/musl/0017-fix-tsearch-to-avoid-crash-on-oom.patch b/main/musl/0017-fix-tsearch-to-avoid-crash-on-oom.patch deleted file mode 100644 index 135d365ad9..0000000000 --- a/main/musl/0017-fix-tsearch-to-avoid-crash-on-oom.patch +++ /dev/null @@ -1,28 +0,0 @@ -From bc9744763afe72d626e7b9f461001d425582fe9c Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Sat, 5 Dec 2015 21:04:18 +0100 -Subject: [PATCH] fix tsearch to avoid crash on oom - -malloc failure was not properly propagated in the insertion method -which led to null pointer dereference. ---- - src/search/tsearch_avl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/search/tsearch_avl.c b/src/search/tsearch_avl.c -index 0864460..8c2f347 100644 ---- a/src/search/tsearch_avl.c -+++ b/src/search/tsearch_avl.c -@@ -89,8 +89,8 @@ static struct node *insert(struct node **n, const void *k, - r->key = k; - r->left = r->right = 0; - r->height = 1; -+ *new = 1; - } -- *new = 1; - return r; - } - c = cmp(k, r->key); --- -2.7.0 - diff --git a/main/musl/0018-tsearch-code-cleanup.patch b/main/musl/0018-tsearch-code-cleanup.patch deleted file mode 100644 index 261b32553b..0000000000 --- a/main/musl/0018-tsearch-code-cleanup.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 8994908b199a57097f420707b1fca75fc30236fa Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Sat, 5 Dec 2015 21:06:02 +0100 -Subject: [PATCH] tsearch code cleanup - -changed the insertion method to simplify the recursion logic and -reduce code size a bit. ---- - src/search/tsearch_avl.c | 52 ++++++++++++++++++++++++++---------------------- - 1 file changed, 28 insertions(+), 24 deletions(-) - -diff --git a/src/search/tsearch_avl.c b/src/search/tsearch_avl.c -index 8c2f347..e4fb131 100644 ---- a/src/search/tsearch_avl.c -+++ b/src/search/tsearch_avl.c -@@ -77,31 +77,35 @@ static struct node *find(struct node *n, const void *k, - return find(n->right, k, cmp); - } - --static struct node *insert(struct node **n, const void *k, -- int (*cmp)(const void *, const void *), int *new) -+static struct node *insert(struct node *n, const void *k, -+ int (*cmp)(const void *, const void *), struct node **found) - { -- struct node *r = *n; -+ struct node *r; - int c; - -- if (!r) { -- *n = r = malloc(sizeof **n); -- if (r) { -- r->key = k; -- r->left = r->right = 0; -- r->height = 1; -- *new = 1; -+ if (!n) { -+ n = malloc(sizeof *n); -+ if (n) { -+ n->key = k; -+ n->left = n->right = 0; -+ n->height = 1; - } -- return r; -+ *found = n; -+ return n; -+ } -+ c = cmp(k, n->key); -+ if (c == 0) { -+ *found = n; -+ return 0; -+ } -+ r = insert(c < 0 ? n->left : n->right, k, cmp, found); -+ if (r) { -+ if (c < 0) -+ n->left = r; -+ else -+ n->right = r; -+ r = balance(n); - } -- c = cmp(k, r->key); -- if (c == 0) -- return r; -- if (c < 0) -- r = insert(&r->left, k, cmp, new); -- else -- r = insert(&r->right, k, cmp, new); -- if (*new) -- *n = balance(*n); - return r; - } - -@@ -165,11 +169,11 @@ void *tfind(const void *key, void *const *rootp, - void *tsearch(const void *key, void **rootp, - int (*compar)(const void *, const void *)) - { -- int new = 0; -- struct node *n = *rootp; -+ struct node *update; - struct node *ret; -- ret = insert(&n, key, compar, &new); -- *rootp = n; -+ update = insert(*rootp, key, compar, &ret); -+ if (update) -+ *rootp = update; - return ret; - } - --- -2.7.0 - diff --git a/main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch b/main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch deleted file mode 100644 index a6ea0ad753..0000000000 --- a/main/musl/0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 3abb094d19ca4c7c4adcf373d971fb5aa05c5252 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy <nsz@port70.net> -Date: Sat, 5 Dec 2015 21:53:59 +0100 -Subject: [PATCH] fix tsearch, tfind, tdelete to handle null pointer input - -POSIX specifies the behaviour for null rootp input, but it -was not implemented correctly. ---- - src/search/tsearch_avl.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/search/tsearch_avl.c b/src/search/tsearch_avl.c -index e4fb131..57194c8 100644 ---- a/src/search/tsearch_avl.c -+++ b/src/search/tsearch_avl.c -@@ -151,6 +151,8 @@ static struct node *remove(struct node **n, const void *k, - void *tdelete(const void *restrict key, void **restrict rootp, - int(*compar)(const void *, const void *)) - { -+ if (!rootp) -+ return 0; - struct node *n = *rootp; - struct node *ret; - /* last argument is arbitrary non-null pointer -@@ -163,6 +165,8 @@ void *tdelete(const void *restrict key, void **restrict rootp, - void *tfind(const void *key, void *const *rootp, - int(*compar)(const void *, const void *)) - { -+ if (!rootp) -+ return 0; - return find(*rootp, key, compar); - } - -@@ -171,6 +175,8 @@ void *tsearch(const void *key, void **rootp, - { - struct node *update; - struct node *ret; -+ if (!rootp) -+ return 0; - update = insert(*rootp, key, compar, &ret); - if (update) - *rootp = update; --- -2.7.0 - diff --git a/main/musl/0020-fix-crash-when-signal-number-0-is-passed-to-sigactio.patch b/main/musl/0020-fix-crash-when-signal-number-0-is-passed-to-sigactio.patch deleted file mode 100644 index 89c9c40394..0000000000 --- a/main/musl/0020-fix-crash-when-signal-number-0-is-passed-to-sigactio.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 42216742cd69e52e70aeb1d14498a8145872de52 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Tue, 15 Dec 2015 23:20:36 -0500 -Subject: [PATCH] fix crash when signal number 0 is passed to sigaction - -this error case was overlooked in the old range checking logic. new -check is moved out of __libc_sigaction to the public wrapper in order -to unify the error path and reduce code size. ---- - src/signal/sigaction.c | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -diff --git a/src/signal/sigaction.c b/src/signal/sigaction.c -index ab23a6f..6eca06f 100644 ---- a/src/signal/sigaction.c -+++ b/src/signal/sigaction.c -@@ -17,10 +17,6 @@ void __get_handler_set(sigset_t *set) - int __libc_sigaction(int sig, const struct sigaction *restrict sa, struct sigaction *restrict old) - { - struct k_sigaction ksa, ksa_old; -- if (sig >= (unsigned)_NSIG) { -- errno = EINVAL; -- return -1; -- } - if (sa) { - if ((uintptr_t)sa->sa_handler > 1UL) { - a_or_l(handler_set+(sig-1)/(8*sizeof(long)), -@@ -57,7 +53,7 @@ int __libc_sigaction(int sig, const struct sigaction *restrict sa, struct sigact - - int __sigaction(int sig, const struct sigaction *restrict sa, struct sigaction *restrict old) - { -- if (sig-32U < 3) { -+ if (sig-32U < 3 || sig-1U >= _NSIG-1) { - errno = EINVAL; - return -1; - } --- -2.7.0 - diff --git a/main/musl/0021-avoid-updating-caller-s-size-when-getdelim-fails-to-.patch b/main/musl/0021-avoid-updating-caller-s-size-when-getdelim-fails-to-.patch deleted file mode 100644 index ea1d50aeca..0000000000 --- a/main/musl/0021-avoid-updating-caller-s-size-when-getdelim-fails-to-.patch +++ /dev/null @@ -1,46 +0,0 @@ -From d87f0a9a95f0a1228ee5579e5822a8c93bc96823 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Sat, 19 Dec 2015 23:43:31 -0500 -Subject: [PATCH] avoid updating caller's size when getdelim fails to realloc - -getdelim was updating *n, the caller's stored buffer size, before -calling realloc. if getdelim then failed due to realloc failure, the -caller would see in *n a value larger than the actual size of the -allocated block, and use of that value is unsafe. in particular, -passing it again to getdelim is unsafe. - -now, temporary storage is used for the desired new size, and *n is not -written until realloc succeeds. ---- - src/stdio/getdelim.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/src/stdio/getdelim.c b/src/stdio/getdelim.c -index 3077490..813b09f 100644 ---- a/src/stdio/getdelim.c -+++ b/src/stdio/getdelim.c -@@ -29,15 +29,16 @@ ssize_t getdelim(char **restrict s, size_t *restrict n, int delim, FILE *restric - k = z ? z - f->rpos + 1 : f->rend - f->rpos; - if (i+k+1 >= *n) { - if (k >= SIZE_MAX/2-i) goto oom; -- *n = i+k+2; -- if (*n < SIZE_MAX/4) *n *= 2; -- tmp = realloc(*s, *n); -+ size_t m = i+k+2; -+ if (m < SIZE_MAX/4) m *= 2; -+ tmp = realloc(*s, m); - if (!tmp) { -- *n = i+k+2; -- tmp = realloc(*s, *n); -+ m = i+k+2; -+ tmp = realloc(*s, m); - if (!tmp) goto oom; - } - *s = tmp; -+ *n = m; - } - memcpy(*s+i, f->rpos, k); - f->rpos += k; --- -2.7.0 - diff --git a/main/musl/0022-fix-overly-pessimistic-realloc-strategy-in-getdelim.patch b/main/musl/0022-fix-overly-pessimistic-realloc-strategy-in-getdelim.patch deleted file mode 100644 index c5aec3cc54..0000000000 --- a/main/musl/0022-fix-overly-pessimistic-realloc-strategy-in-getdelim.patch +++ /dev/null @@ -1,46 +0,0 @@ -From c673158d91ad995ed59dd910777cd6464f61fe8e Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Sun, 20 Dec 2015 00:32:46 -0500 -Subject: [PATCH] fix overly pessimistic realloc strategy in getdelim - -previously, getdelim was allocating twice the space needed every time -it expanded its buffer to implement exponential buffer growth (in -order to avoid quadratic run time). however, this doubling was -performed even when the final buffer length needed was already known, -which is the common case that occurs whenever the delimiter is in the -FILE's buffer. - -this patch makes two changes to remedy the situation: - -1. over-allocation is no longer performed if the delimiter has already -been found when realloc is needed. - -2. growth factor is reduced from 2x to 1.5x to reduce the relative -excess allocation in cases where the delimiter is not initially in the -buffer, including unbuffered streams. - -in theory these changes could lead to quadratic time if the same -buffer is reused to process a sequence of lines successively -increasing in length, but once this length exceeds the stdio buffer -size, the delimiter will not be found in the buffer right away and -exponential growth will still kick in. ---- - src/stdio/getdelim.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/stdio/getdelim.c b/src/stdio/getdelim.c -index 813b09f..1ccd802 100644 ---- a/src/stdio/getdelim.c -+++ b/src/stdio/getdelim.c -@@ -30,7 +30,7 @@ ssize_t getdelim(char **restrict s, size_t *restrict n, int delim, FILE *restric - if (i+k+1 >= *n) { - if (k >= SIZE_MAX/2-i) goto oom; - size_t m = i+k+2; -- if (m < SIZE_MAX/4) m *= 2; -+ if (!z && m < SIZE_MAX/4) m += m/2; - tmp = realloc(*s, m); - if (!tmp) { - m = i+k+2; --- -2.7.0 - diff --git a/main/musl/0023-add-missing-protocols-to-protoent-lookup-functions.patch b/main/musl/0023-add-missing-protocols-to-protoent-lookup-functions.patch deleted file mode 100644 index 4b22402d82..0000000000 --- a/main/musl/0023-add-missing-protocols-to-protoent-lookup-functions.patch +++ /dev/null @@ -1,54 +0,0 @@ -From d5f8394f6ea9549607567bd92de12a2446c15614 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> -Date: Tue, 5 Jan 2016 16:58:40 +0200 -Subject: [PATCH] add missing protocols to protoent lookup functions - ---- - src/network/proto.c | 17 ++++++++++++++++- - 1 file changed, 16 insertions(+), 1 deletion(-) - -diff --git a/src/network/proto.c b/src/network/proto.c -index 43aa17a..a42d145 100644 ---- a/src/network/proto.c -+++ b/src/network/proto.c -@@ -9,21 +9,36 @@ static const unsigned char protos[] = { - "\001icmp\0" - "\002igmp\0" - "\003ggp\0" -+ "\004ipencap\0" -+ "\005st\0" - "\006tcp\0" -+ "\008egp\0" - "\014pup\0" - "\021udp\0" -- "\026idp\0" -+ "\024hmp\0" -+ "\026xns-idp\0" -+ "\033rdp\0" -+ "\035iso-tp4\0" -+ "\044xtp\0" -+ "\045ddp\0" -+ "\046idpr-cmtp\0" - "\051ipv6\0" - "\053ipv6-route\0" - "\054ipv6-frag\0" -+ "\055idrp\0" -+ "\056rsvp\0" - "\057gre\0" - "\062esp\0" - "\063ah\0" -+ "\071skip\0" - "\072ipv6-icmp\0" - "\073ipv6-nonxt\0" - "\074ipv6-opts\0" -+ "\111rspf\0" -+ "\121vmtp\0" - "\131ospf\0" - "\136ipip\0" -+ "\142encap\0" - "\147pim\0" - "\377raw" - }; --- -2.7.0 - diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD index bb51443abe..457f6a41c3 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.12 -pkgrel=2 +pkgver=1.1.13 +pkgrel=0 pkgdesc="the musl c library (libc) implementation" url="http://www.musl-libc.org/" arch="all" @@ -12,29 +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-fix-single-byte-overflow-of-malloc-d-buffer-in-getde.patch - 0002-safely-handle-failure-to-open-hosts-services-resolv..patch - 0003-getnameinfo-make-size-check-not-fail-for-bigger-size.patch - 0004-properly-access-mcontext_t-program-counter-in-cancel.patch - 0005-use-explicit-__cp_cancel-label-in-cancellable-syscal.patch - 0006-prevent-allocs-than-PTRDIFF_MAX-via-mremap.patch - 0007-fix-mremap-memory-synchronization-and-use-of-variadi.patch - 0008-have-configure-check-add-ffunction-sections-and-fdat.patch - 0009-have-configure-check-add-linker-options-to-reduce-si.patch - 0010-have-configure-check-add-gc-sections-linker-option.patch - 0011-work-around-toolchains-with-broken-visibility-in-lib.patch - 0012-fix-return-value-of-nl_langinfo-for-invalid-item-arg.patch - 0013-math-explicitly-promote-expressions-to-excess-precis.patch - 0014-ldso-fix-the-dtv-update-logic-in-__tls_get_new.patch - 0015-properly-handle-point-to-point-interfaces-in-getifad.patch - 0016-fix-tdelete-to-properly-balance-the-tree.patch - 0017-fix-tsearch-to-avoid-crash-on-oom.patch - 0018-tsearch-code-cleanup.patch - 0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch - 0020-fix-crash-when-signal-number-0-is-passed-to-sigactio.patch - 0021-avoid-updating-caller-s-size-when-getdelim-fails-to-.patch - 0022-fix-overly-pessimistic-realloc-strategy-in-getdelim.patch - 0023-add-missing-protocols-to-protoent-lookup-functions.patch ldconfig __stack_chk_fail_local.c @@ -150,88 +127,19 @@ compat() { done } -md5sums="42875e0c111aa1cb9d08663f8d42c799 musl-1.1.12.tar.gz -02d3339c59ed2996aec7909d3c45c655 0001-fix-single-byte-overflow-of-malloc-d-buffer-in-getde.patch -0893b094870823046db1b19786ddae22 0002-safely-handle-failure-to-open-hosts-services-resolv..patch -a340ce73f0e77440c546163cfe4e0e87 0003-getnameinfo-make-size-check-not-fail-for-bigger-size.patch -3fb065e44e1fcaef160f897a8b4650c1 0004-properly-access-mcontext_t-program-counter-in-cancel.patch -79a29b7dad83283adca8e68dfd3bc59f 0005-use-explicit-__cp_cancel-label-in-cancellable-syscal.patch -e13993cb4786fd692e33e1406ad2b216 0006-prevent-allocs-than-PTRDIFF_MAX-via-mremap.patch -c693ab04bb7ff779f5e94ecf94cdc7d6 0007-fix-mremap-memory-synchronization-and-use-of-variadi.patch -fc6a1e682050520e1ae3f45b3d922a1e 0008-have-configure-check-add-ffunction-sections-and-fdat.patch -76c29ad893c80191cee395493430f385 0009-have-configure-check-add-linker-options-to-reduce-si.patch -ce46e304c8e54ee44473b94643a7fcde 0010-have-configure-check-add-gc-sections-linker-option.patch -5f051185cb80074708c9d9d4ed09b999 0011-work-around-toolchains-with-broken-visibility-in-lib.patch -b231d5033566c5d4afc936fe52f5e2d4 0012-fix-return-value-of-nl_langinfo-for-invalid-item-arg.patch -a636889b40dd3d4d48687aba2d07d8eb 0013-math-explicitly-promote-expressions-to-excess-precis.patch -469bcc5b68f39112748e59af8c6e9dd4 0014-ldso-fix-the-dtv-update-logic-in-__tls_get_new.patch -ecb2784515da574cb829713f6d05221f 0015-properly-handle-point-to-point-interfaces-in-getifad.patch -5c60f8931354e219e73a6f068786821a 0016-fix-tdelete-to-properly-balance-the-tree.patch -9f34e1c6d510e3c461dc83ab28a52ef5 0017-fix-tsearch-to-avoid-crash-on-oom.patch -197ecc83ff71f081e41e3dca8d7e9c6c 0018-tsearch-code-cleanup.patch -ca459c4237bdafb9d0047cc104bf1376 0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch -cc6a97327c6d16da0b8416f61266ef83 0020-fix-crash-when-signal-number-0-is-passed-to-sigactio.patch -a9bd9d9659a359d5bd330aa42fc62d5e 0021-avoid-updating-caller-s-size-when-getdelim-fails-to-.patch -99f93be1cc75bc35ce51d6b221b9c7c1 0022-fix-overly-pessimistic-realloc-strategy-in-getdelim.patch -cde5cb6872b78efd8748e379b0865861 0023-add-missing-protocols-to-protoent-lookup-functions.patch +md5sums="b8cb33a04ab461b55edcc807abf82241 musl-1.1.13.tar.gz 830d01f7821b978df770b06db3790921 ldconfig 0df687757221bbb0fc1aa67f1bd646f9 __stack_chk_fail_local.c 57ef2c63b9ec6a2041694ace97d4ffa2 getconf.c 2b941c4251cac44988a4abfc50e21267 getent.c 45f92f8d59cf84d765de698a9578dbf4 iconv.c" -sha256sums="720b83c7e276b4b679c0bffe9509340d5f81fd601508e607e708177df0d31c0e musl-1.1.12.tar.gz -ee51a2ae17e123e5363cd8c09c121263d1b4e0c2484515ae0d9b2c666e3863e6 0001-fix-single-byte-overflow-of-malloc-d-buffer-in-getde.patch -2ee9a4d8085e1a35aff8874d3dc021c3a0ffd2842b6835383aa8d8a24ec558ed 0002-safely-handle-failure-to-open-hosts-services-resolv..patch -c165876c6a744768f842e0a4c66a3817f3a50464ad1549f62214819149e70019 0003-getnameinfo-make-size-check-not-fail-for-bigger-size.patch -5be81238a8995ea02a9251b2ec514ab6fbb293abd093f542dde6c110b9ad8a74 0004-properly-access-mcontext_t-program-counter-in-cancel.patch -765b7d653680793bf607a14965444af42a2b75b89401b0265996cdce58873859 0005-use-explicit-__cp_cancel-label-in-cancellable-syscal.patch -2ea9de6eebc02ddc6ef36083467e8b38700e94acff03dc954f4f7fd8b996eb90 0006-prevent-allocs-than-PTRDIFF_MAX-via-mremap.patch -9f464642f19298a13bc0b8d1964489275fa1526bd12212322d0d021beb1960a8 0007-fix-mremap-memory-synchronization-and-use-of-variadi.patch -b49213cabb1323f75891c6cedb0388ef8a36527326b263863f09f9a6e041c9b3 0008-have-configure-check-add-ffunction-sections-and-fdat.patch -8f66ec53c0bcc2eaf48d8893df537b9b3b800c2b5b11a8ac4426517b17e7e561 0009-have-configure-check-add-linker-options-to-reduce-si.patch -47ae56a03d509dca5767de38dad77ffbd28f820e7b6c5ebb6a62ef58443fc74d 0010-have-configure-check-add-gc-sections-linker-option.patch -1f545670eb4c3d8dc95930cfa2e0bd2b5fdb7a0dd7fc7cbf53423566cb1a2642 0011-work-around-toolchains-with-broken-visibility-in-lib.patch -970a22adfc08d8f2685fdf5b47f1b52bce97a12094f048ca50e42ca70187cbbe 0012-fix-return-value-of-nl_langinfo-for-invalid-item-arg.patch -d5b15f2dd9305e16f562c5daae3d08e1aa17b16954c76efa62922e5fb30a1061 0013-math-explicitly-promote-expressions-to-excess-precis.patch -09d6a5518d7c2185117b7240222efbd58f8e02600c00960f4dcf08841b49313a 0014-ldso-fix-the-dtv-update-logic-in-__tls_get_new.patch -adbd062b398a4effcbaf9c451ed48faab152b1a9cffcc7cc36c749e91ba66f72 0015-properly-handle-point-to-point-interfaces-in-getifad.patch -3924429c0475bd14e7109539281b5011f6f3dd27257bbce3fd6e1232d6b12c61 0016-fix-tdelete-to-properly-balance-the-tree.patch -c26d7070c5cff59ae8383d74d6b7919e26876b448b8be9df44b92ae983a4d1c6 0017-fix-tsearch-to-avoid-crash-on-oom.patch -6913e0d2d7a04ae813847125e2dda1399502c76b679c4caf25510a43d7b1642e 0018-tsearch-code-cleanup.patch -f8b10603a9e6ab53c7a6a90ac79eceee67aef2a3a2467a9c05b3eb6a0c661f7a 0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch -11e27faaf0f795ce89e772746d0575f5ff506a4c82e2595b68238c3d44153a61 0020-fix-crash-when-signal-number-0-is-passed-to-sigactio.patch -abbc746c46c96478c9ccc7ac3e61142e5dde63a00d80787d24e79802a4cd32b6 0021-avoid-updating-caller-s-size-when-getdelim-fails-to-.patch -3469865c391422dc56806c32b5ba373f2f0e67476235a69c172c8d9f866125cd 0022-fix-overly-pessimistic-realloc-strategy-in-getdelim.patch -b9c4ca23898d8f57c7ad26bd8214df2294b2ef06bf7a517dad3750ddd0581f75 0023-add-missing-protocols-to-protoent-lookup-functions.patch +sha256sums="bbacdc64f557d0c4857f7d2daf592c32c29aec1babbb94fcf01a2e05bed15013 musl-1.1.13.tar.gz b4a2c06db38742e8c42c3c9838b285a7d8cdac6c091ff3df5ff9a15f1e41b9c7 ldconfig 299a7d75a09de3e2e11e7fb4acc3182e4a14e868093d2f30938fce9bfcff13da __stack_chk_fail_local.c d87d0cbb3690ae2c5d8cc218349fd8278b93855dd625deaf7ae50e320aad247c getconf.c 68373a55e89ce85c562d941ccf588337d6cc6c9c17689d695f65cd7607134bbe getent.c f79a2930a2e5bb0624321589edf8b889d1e9b603e01e6b7ae214616605b3fdd7 iconv.c" -sha512sums="7cabbe2665e32bd3408c8865f89f474106e982b4e5de81d0cdeea19e19e20b4d2496faf1adc6b2811d996f30f39258184ba347e8eb5f3811eab89179e8f52d70 musl-1.1.12.tar.gz -ec23ce27f1c2b4c8dae4c76b38da2795d46df55dce6a159e98b2755c0a6d391749626e65862b46d36d8473edc71ad01f2bf3521e41666895f705c7dad27a12bc 0001-fix-single-byte-overflow-of-malloc-d-buffer-in-getde.patch -36bc9d2a236a9cc8e0e4de87c47abb887891b29c9f67b5e708c25373f9c060080f8bde95d1dac313e02de5a76fd4b22ad2f34eb5cb5506d9e44386d6473f7cdb 0002-safely-handle-failure-to-open-hosts-services-resolv..patch -9d651de100a68c87bdb427e034717c6f885d395d63a5337f185da0a7ff10502dbee9234dc952e014f1362d78fd44752ac10eef78a9d3a81e33f2e2374132693e 0003-getnameinfo-make-size-check-not-fail-for-bigger-size.patch -f1e627690aaf494052b573c16d17901edbefe99a2ff216b68b1261024c28e5c049de35bdddf018e826e8971fe34e328bd6507a6f8d3810d4179f2662cc7794fc 0004-properly-access-mcontext_t-program-counter-in-cancel.patch -19fafc5a62150a9500e8495b7ebb71b680e8c827002e863f641ff5631812fe242981b452932c2759c6cf0150151393d1ed1a213a7ce8dd7e6de3e2ffd6c9f280 0005-use-explicit-__cp_cancel-label-in-cancellable-syscal.patch -2c73458719e68fea6684905c4b2632e67d83674da7e92d37794939d277efc7469471aae4b7ade395214e4a7061f1027b87e3cdf664085bc473089d72f38d8baf 0006-prevent-allocs-than-PTRDIFF_MAX-via-mremap.patch -d17d9deedbed9a2fa7d7988a2b13f9c3273faf19543a8b184c2f0b4e1740403199bc8884399abe15ce65143a9277b53c77231f176808b7f15ee9f0c479b8c93d 0007-fix-mremap-memory-synchronization-and-use-of-variadi.patch -21eb9d66f93276bf46fb2dead1b9bf73d5703ceae3dff6e8bb9e9d273e39515623cde71a4728b7c6557fe39a7fd1229b92fe41af13b7df6a05f781c4cca2ac14 0008-have-configure-check-add-ffunction-sections-and-fdat.patch -abdeece8b2a64d45607ee513949e8a788e7f54a4f3e2111926a354e5b5af2c932ef0b5cc1d1ad8db48d168cee34e21b918ef01e1a9f3efadc5b6ef2c4c22c508 0009-have-configure-check-add-linker-options-to-reduce-si.patch -c49071c8014a5a8407c6df006a8874481a97f03f95a14420f66457e20446085e173ec12a2f161fd9bc3d85a2b1f40972092d89d339498fb7890e0512cb13d0ca 0010-have-configure-check-add-gc-sections-linker-option.patch -1ef9e77b9f17e9cd1dd77487005ff08b9fda357380d70dedb9752bfdf071cc077a8b93eae84f08ce27af7f0e4f8cb7f2b09d17d2e953a6429e20959decce517a 0011-work-around-toolchains-with-broken-visibility-in-lib.patch -636cc187f96916aef02e1bab8ceafb0ce02a087f8358b36e8ded0a5db431bb5d26c90234e21e85742e2dad90fa8315c80ac818c26777cbd1f55d8b6d1d7a5eeb 0012-fix-return-value-of-nl_langinfo-for-invalid-item-arg.patch -49a0a51f652e818769380eeccaab1e58e58afecfe99277a157391c8038cbc101eaefc11f1440461834e2f428c02ead740b89afeaece7966efbb9a2f053fd4d29 0013-math-explicitly-promote-expressions-to-excess-precis.patch -270e40a25012d2ccd9d5ec53eba7089b920aa68de0e75baf69cb658bfe42837f0546bf5323fa7bf248c0bbe5e76e8d4df789da3cda89f29dab75346e9ed63723 0014-ldso-fix-the-dtv-update-logic-in-__tls_get_new.patch -15f5061ccb11413c98e8cbf9b39533496a2326e69256234902f0e954350247ff4fdcc1acec482ceb5d96a835bb3bf62e79d14cfffc8c7b4806abf19250afe688 0015-properly-handle-point-to-point-interfaces-in-getifad.patch -cd3178963bb0ea3c4bc670ab75fad15d85cf157cbf22f6b24a16d31f6c78b57aac58af4756a0e2ecddff38e383552134cc666e14955e0dedfdd0f2853afe7e0a 0016-fix-tdelete-to-properly-balance-the-tree.patch -dd14c638499a9364c64371f45183bc01b078594291da8b11a4a8bedf58cdb853502b8e871f52aae7bbcd71e930c6abda7aa6ea280d5ea226091a5256836f7ef1 0017-fix-tsearch-to-avoid-crash-on-oom.patch -12c9ad56768cd97768f7be51784b7df3ef9041ad568252d9e5f6ba725836d9aa8bdc2a53d17b4161395e5e10ad08acc03237bb0d48eafe93eb46f5967bc4f2ab 0018-tsearch-code-cleanup.patch -6136a11408ccd58427507841773fb73e3755f073ae22cfb1b41ff6228f6b9b9719e7313b24c5198a32f7d6aa0601f2792aa4ccd558aaf2a6311ac896c89b7c1c 0019-fix-tsearch-tfind-tdelete-to-handle-null-pointer-inp.patch -5a754335dfa9b8856aa04876c4dc8c98a27630c670242b77f3fdcf1dd1133edb1661c124c60a594ee1c1fbf9401d481a6be186a00b53120ba83644a835799e2c 0020-fix-crash-when-signal-number-0-is-passed-to-sigactio.patch -7b9618242ae75767a5eb7dc3ea83e2fb44ab073c1062cb1f7c3b2168f7185f442ff1438755e3e8bab8eee9406d08ba4bed0a39ec9c4b8fb7ff523424a020c920 0021-avoid-updating-caller-s-size-when-getdelim-fails-to-.patch -d166fabf4178c4f74113182a9294e1b864c78be1123bf0c5a59ec627017440369cabc31fe69c570df672a9eccfe891bddf5306fb9d638b0b69e5a2416af015ee 0022-fix-overly-pessimistic-realloc-strategy-in-getdelim.patch -feda1aa70f6bf70d00da1d633ad9b5a539abaa3638707a4c9ff624d2492086af381963c3ec021fc67c67c314967c66148fd6a8852ec1538936170f40c6f81525 0023-add-missing-protocols-to-protoent-lookup-functions.patch +sha512sums="d5f4a6fdb6a2cdbd7ab1ad5a8d91b1c690b3bd31d9049dfc022067019bba11952e375374eed982a0ddac7347d17f9ff2300178c4d5f27bdd8480933cc6e67802 musl-1.1.13.tar.gz 8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f ldconfig 062bb49fa54839010acd4af113e20f7263dde1c8a2ca359b5fb2661ef9ed9d84a0f7c3bc10c25dcfa10bb3c5a4874588dff636ac43d5dbb3d748d75400756d0b __stack_chk_fail_local.c 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d getconf.c |