Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 29 Jul 2018 14:50:44 +0200
From: Christian Lamparter <chunkeey@...il.com>
To: musl@...ts.openwall.com,
	openwrt-devel@...ts.openwrt.org
Subject: [RFC/RFT] musl: 1.1.20 prelease testing

Rich Felker requested some field testing of his 1.1.20 release:
<http://www.openwall.com/lists/musl/2018/04/18/3>

"The biggest areas that need testing are:

- stdio locking after commits c21f750727515602a9e84f2a190ee8a0a2aeb2a1
  and c1014a812c90bab3c9c989863e4ebb129e987de6.

- reclaim_gaps since commit ce7ae11acfd9db8eb92cc6823c132e1825918d92.
  this could be tested by abusing __malloc_donate as if it were a
  public api.

- malloc interposition -- seeing if replacement allocators actually
  work. (not so important since it wouldn't be a regression if it's
  broken, but would be nice to know it works before announcing)"

<http://www.openwall.com/lists/musl/2018/07/28/4>
"In particular, coverage for changes since 1.1.19 would include:

- getrandom/getentropy basic functionality check
- setvbuf non-stub inplementation: basic functionality, check for
  writes outside the buffer, etc.
- malloc interposition: check that partial replacement doesn't result
  in unsafe behavior.
- pthread_create: confirm that scheduling and other attributes still
  work as expected after refactoring work.
- getddrinfo AI_ADDRCONFIG (can't really be tested without network
  namespaces though)

Particular bugfixes that call for functionality or regression tests:

b123f23 fix getopt wrongly treating colons in optstring as valid option chars
0cf5058 fix nl_langinfo_l(CODESET, loc) reporting wrong locale's value
282b1cd fix fmaf wrong result
ae2a01d fix wrong result in casin and many related complex functions
10e4bd3 fix incorrect results for catan with some inputs
4bf0717 fix return value of nice function
3f6dc30 fix out of bounds write for zero length buffer in gethostname
9be4ed5 getopt_long_only: don't prefix-match long-options that match short ones
55a661f fix iconv buffer overflow converting to legacy JIS-based encodings
99f4237 fix iconv conversion to UTF-32 with implicit (big) endianness
165a1e3 fix iconv mapping of big5-hkscs characters that map to two unicode chars
029c622 fix output size handling for multi-unicode-char big5-hkscs characters
5c8e692 inet_ntop: do not compress single zeros in IPv6
8b8fb7f correctly handle non-matching symbols in dladdr
9cad27a fix writes outside buffer by ungetc after setvbuf
b3fa0f2 fix regression in alignment of dirent structs produced by readdir"

Signed-off-by: Christian Lamparter <chunkeey@...il.com>
---
 toolchain/musl/common.mk                      |  6 +-
 ...ocket.h-fix-SO_PEERSEC-value-on-MIPS.patch | 59 -------------------
 .../patches/200-add_libssp_nonshared.patch    | 39 ++++++------
 toolchain/musl/patches/300-relative.patch     |  2 +-
 ...ribute-to-some-function-declarations.patch |  8 +--
 .../musl/patches/900-iconv_size_hack.patch    |  6 +-
 6 files changed, 32 insertions(+), 88 deletions(-)
 delete mode 100644 toolchain/musl/patches/010-sys-socket.h-fix-SO_PEERSEC-value-on-MIPS.patch

diff --git a/toolchain/musl/common.mk b/toolchain/musl/common.mk
index 87424646c3..3d58439a01 100644
--- a/toolchain/musl/common.mk
+++ b/toolchain/musl/common.mk
@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/target.mk
 
 PKG_NAME:=musl
-PKG_VERSION:=1.1.19
+PKG_VERSION:=1.1.20-pre
 PKG_RELEASE=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=55df09bfccbfe21fc9dd7d8f94550c0ff25ace04
-PKG_MIRROR_HASH:=eb94e4e7e94221dd8890afd9b29e2562c36cf5585649035349ca1c6c1c354f2b
+PKG_SOURCE_VERSION:=f2c6dbe2442027ed8fe0fa869918e41f495534d8
+PKG_MIRROR_HASH:=2ec8320cea2c560c9e9a01f7e3b8681f0113b380838194bcdf90562a38c847e4
 PKG_SOURCE_URL:=git://git.musl-libc.org/musl
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 
diff --git a/toolchain/musl/patches/010-sys-socket.h-fix-SO_PEERSEC-value-on-MIPS.patch b/toolchain/musl/patches/010-sys-socket.h-fix-SO_PEERSEC-value-on-MIPS.patch
deleted file mode 100644
index 2319d9cb68..0000000000
--- a/toolchain/musl/patches/010-sys-socket.h-fix-SO_PEERSEC-value-on-MIPS.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 4e0877a604bad684be020f68e96a05156131fd44 Mon Sep 17 00:00:00 2001
-From: Matthias Schiffer <mschiffer@...verse-factory.net>
-Date: Sun, 24 Jun 2018 17:05:31 +0200
-Subject: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS
-
-Differing from all other archs supported by musl, MIPS defines SO_PEERSEC
-to 30 instead of 31.
-
-Reported-by: Andrey Jr. Mlenikov <temnota.am@...il.com>
----
- arch/mips/bits/socket.h    | 2 ++
- arch/mips64/bits/socket.h  | 2 ++
- arch/mipsn32/bits/socket.h | 2 ++
- include/sys/socket.h       | 3 +++
- 4 files changed, 9 insertions(+)
-
---- a/arch/mips/bits/socket.h
-+++ b/arch/mips/bits/socket.h
-@@ -48,5 +48,7 @@ struct cmsghdr {
- #define SO_SNDBUFFORCE  31
- #define SO_RCVBUFFORCE  33
- 
-+#define SO_PEERSEC      30
-+
- #define SOCK_NONBLOCK     0200
- #define SOCK_CLOEXEC  02000000
---- a/arch/mips64/bits/socket.h
-+++ b/arch/mips64/bits/socket.h
-@@ -64,5 +64,7 @@ struct cmsghdr {
- #define SO_SNDBUFFORCE  31
- #define SO_RCVBUFFORCE  33
- 
-+#define SO_PEERSEC      30
-+
- #define SOCK_NONBLOCK     0200
- #define SOCK_CLOEXEC  02000000
---- a/arch/mipsn32/bits/socket.h
-+++ b/arch/mipsn32/bits/socket.h
-@@ -48,5 +48,7 @@ struct cmsghdr {
- #define SO_SNDBUFFORCE  31
- #define SO_RCVBUFFORCE  33
- 
-+#define SO_PEERSEC      30
-+
- #define SOCK_NONBLOCK     0200
- #define SOCK_CLOEXEC  02000000
---- a/include/sys/socket.h
-+++ b/include/sys/socket.h
-@@ -201,7 +201,10 @@ struct linger {
- #define SO_TIMESTAMP            29
- #define SCM_TIMESTAMP           SO_TIMESTAMP
- 
-+#ifndef SO_PEERSEC
- #define SO_PEERSEC              31
-+#endif
-+
- #define SO_PASSSEC              34
- #define SO_TIMESTAMPNS          35
- #define SCM_TIMESTAMPNS         SO_TIMESTAMPNS
diff --git a/toolchain/musl/patches/200-add_libssp_nonshared.patch b/toolchain/musl/patches/200-add_libssp_nonshared.patch
index 7a2909461b..b8fa7b4b4f 100644
--- a/toolchain/musl/patches/200-add_libssp_nonshared.patch
+++ b/toolchain/musl/patches/200-add_libssp_nonshared.patch
@@ -4,11 +4,6 @@ Date: Mon, 22 Jun 2015 11:01:56 +0200
 Subject: [PATCH] Add libssp_nonshared.a so GCC's is not needed
 
 Signed-off-by: Steven Barth <steven@...link.org>
----
- Makefile                                  | 10 ++++++++--
- libssp_nonshared/__stack_chk_fail_local.c |  2 ++
- 2 files changed, 10 insertions(+), 2 deletions(-)
- create mode 100644 libssp_nonshared/__stack_chk_fail_local.c
 
 --- a/Makefile
 +++ b/Makefile
@@ -21,21 +16,29 @@ Signed-off-by: Steven Barth <steven@...link.org>
  ALL_TOOLS = obj/musl-gcc
  
  WRAPCC_GCC = gcc
-@@ -125,7 +125,8 @@ NOSSP_SRCS = $(wildcard crt/*.c) \
- 	src/thread/__set_thread_area.c src/thread/$(ARCH)/__set_thread_area.c \
- 	src/string/memset.c src/string/$(ARCH)/memset.c \
- 	src/string/memcpy.c src/string/$(ARCH)/memcpy.c \
--	ldso/dlstart.c ldso/dynlink.c
-+	ldso/dlstart.c ldso/dynlink.c \
-+	src/libssp_nonshared/__stack_chk_fail_local.c
- $(NOSSP_SRCS:%.c=obj/%.o) $(NOSSP_SRCS:%.c=obj/%.lo): CFLAGS_ALL += $(CFLAGS_NOSSP)
- 
- $(CRT_OBJS): CFLAGS_ALL += -DCRT
-@@ -168,6 +169,11 @@ lib/libc.a: $(AOBJS)
+@@ -86,7 +86,7 @@ else
+ 
+ all: $(ALL_LIBS) $(ALL_TOOLS)
+ 
+-OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include)
++OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include obj/libssp_nonshared)
+ 
+ $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_OBJS:%.o=%.lo) $(GENH) $(GENH_INT): | $(OBJ_DIRS)
+
+@@ -113,6 +113,8 @@ obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart.
+ 
+ obj/crt/Scrt1.o obj/crt/rcrt1.o: CFLAGS_ALL += -fPIC
+ 
++obj/libssp_nonshared/__stack_chk_fail_local.o: CFLAGS_ALL += $(CFLAGS_NOSSP)
++
+ OPTIMIZE_SRCS = $(wildcard $(OPTIMIZE_GLOBS:%=$(srcdir)/src/%))
+ $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.o) $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.lo): CFLAGS += -O3
+ 
+@@ -165,6 +166,11 @@ lib/libc.a: $(AOBJS)
  	$(AR) rc $@ $(AOBJS)
  	$(RANLIB) $@
  
-+lib/libssp_nonshared.a: obj/src/libssp_nonshared/__stack_chk_fail_local.o
++lib/libssp_nonshared.a: obj/libssp_nonshared/__stack_chk_fail_local.o
 +	rm -f $@
 +	$(AR) rc $@ $<
 +	$(RANLIB) $@
@@ -44,7 +47,7 @@ Signed-off-by: Steven Barth <steven@...link.org>
  	rm -f $@
  	$(AR) rc $@
 --- /dev/null
-+++ b/src/libssp_nonshared/__stack_chk_fail_local.c
++++ b/libssp_nonshared/__stack_chk_fail_local.c
 @@ -0,0 +1,2 @@
 +#include "atomic.h"
 +void __attribute__((visibility ("hidden"))) __stack_chk_fail_local(void) { a_crash(); }
diff --git a/toolchain/musl/patches/300-relative.patch b/toolchain/musl/patches/300-relative.patch
index 7e1eb7d6bc..e34e60a09d 100644
--- a/toolchain/musl/patches/300-relative.patch
+++ b/toolchain/musl/patches/300-relative.patch
@@ -1,6 +1,6 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -217,7 +217,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
+@@ -215,7 +215,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
  	$(INSTALL) -D -m 644 $< $@
  
  $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
diff --git a/toolchain/musl/patches/400-Add-format-attribute-to-some-function-declarations.patch b/toolchain/musl/patches/400-Add-format-attribute-to-some-function-declarations.patch
index 915b0b7b47..f7eff9141f 100644
--- a/toolchain/musl/patches/400-Add-format-attribute-to-some-function-declarations.patch
+++ b/toolchain/musl/patches/400-Add-format-attribute-to-some-function-declarations.patch
@@ -102,7 +102,7 @@ Signed-off-by: Hauke Mehrtens <hauke@...ke-m.de>
  #ifdef __cplusplus
  #define NULL 0L
  #else
-@@ -102,19 +110,19 @@ int puts(const char *);
+@@ -103,19 +111,19 @@ int puts(const char *);
  int printf(const char *__restrict, ...);
  int fprintf(FILE *__restrict, const char *__restrict, ...);
  int sprintf(char *__restrict, const char *__restrict, ...);
@@ -127,7 +127,7 @@ Signed-off-by: Hauke Mehrtens <hauke@...ke-m.de>
  
  void perror(const char *);
  
-@@ -135,8 +143,8 @@ int pclose(FILE *);
+@@ -136,8 +144,8 @@ int pclose(FILE *);
  int fileno(FILE *);
  int fseeko(FILE *, off_t, int);
  off_t ftello(FILE *);
@@ -138,7 +138,7 @@ Signed-off-by: Hauke Mehrtens <hauke@...ke-m.de>
  void flockfile(FILE *);
  int ftrylockfile(FILE *);
  void funlockfile(FILE *);
-@@ -175,8 +183,8 @@ int fileno_unlocked(FILE *);
+@@ -176,8 +184,8 @@ int fileno_unlocked(FILE *);
  int getw(FILE *);
  int putw(int, FILE *);
  char *fgetln(FILE *, size_t *);
@@ -149,7 +149,7 @@ Signed-off-by: Hauke Mehrtens <hauke@...ke-m.de>
  #endif
  
  #ifdef _GNU_SOURCE
-@@ -198,6 +206,9 @@ typedef struct _IO_cookie_io_functions_t
+@@ -199,6 +207,9 @@ typedef struct _IO_cookie_io_functions_t
  FILE *fopencookie(void *, const char *, cookie_io_functions_t);
  #endif
  
diff --git a/toolchain/musl/patches/900-iconv_size_hack.patch b/toolchain/musl/patches/900-iconv_size_hack.patch
index 6200262b1d..461a204a4c 100644
--- a/toolchain/musl/patches/900-iconv_size_hack.patch
+++ b/toolchain/musl/patches/900-iconv_size_hack.patch
@@ -56,7 +56,7 @@
  		case SHIFT_JIS:
  			if (c < 128) break;
  			if (c-0xa1 <= 0xdf-0xa1) {
-@@ -510,6 +517,7 @@ size_t iconv(iconv_t cd, char **restrict
+@@ -518,6 +525,7 @@ size_t iconv(iconv_t cd, char **restrict
  			c = ksc[c][d];
  			if (!c) goto ilseq;
  			break;
@@ -64,7 +64,7 @@
  		default:
  			if (!c) break;
  			c = legacy_map(map, c);
-@@ -550,6 +558,7 @@ size_t iconv(iconv_t cd, char **restrict
+@@ -559,6 +567,7 @@ size_t iconv(iconv_t cd, char **restrict
  				}
  			}
  			goto subst;
@@ -72,7 +72,7 @@
  		case SHIFT_JIS:
  			if (c < 128) goto revout;
  			if (c == 0xa5) {
-@@ -623,6 +632,7 @@ size_t iconv(iconv_t cd, char **restrict
+@@ -632,6 +641,7 @@ size_t iconv(iconv_t cd, char **restrict
  			*(*out)++ = 'B';
  			*outb -= 8;
  			break;
-- 
2.18.0

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ