mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 02:09:57 +00:00 
			
		
		
		
	In particular this contains 1be7107fbe18eed3e319 ("mm: larger stack
guard gap, between vmas") which is a fix for CVE-2017-1000364.
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
		
	
		
			
				
	
	
		
			151 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 1205f3c82be709022f1bc6d0011ae04dbc95117b Mon Sep 17 00:00:00 2001
 | |
| From: Arnaldo Carvalho de Melo <acme@redhat.com>
 | |
| Date: Thu, 2 Mar 2017 12:55:49 -0300
 | |
| Subject: [PATCH 01/12] tools build: Add test for sched_getcpu()
 | |
| 
 | |
| Instead of trying to go on adding more ifdef conditions, do a feature
 | |
| test and define HAVE_SCHED_GETCPU_SUPPORT instead, then use it to
 | |
| provide the prototype. No need to change the stub, as it is already a
 | |
| __weak symbol.
 | |
| 
 | |
| Cc: Adrian Hunter <adrian.hunter@intel.com>
 | |
| Cc: David Ahern <dsahern@gmail.com>
 | |
| Cc: Jiri Olsa <jolsa@kernel.org>
 | |
| Cc: Namhyung Kim <namhyung@kernel.org>
 | |
| Cc: Wang Nan <wangnan0@huawei.com>
 | |
| Link: http://lkml.kernel.org/n/tip-yge89er9g90sc0v6k0a0r5tr@git.kernel.org
 | |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 | |
| (cherry picked from commit 120010cb1eea151d38a3e66f5ffc79a0c3110292)
 | |
| Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
 | |
| ---
 | |
|  tools/build/Makefile.feature            | 1 +
 | |
|  tools/build/feature/Makefile            | 6 +++++-
 | |
|  tools/build/feature/test-all.c          | 5 +++++
 | |
|  tools/build/feature/test-sched_getcpu.c | 7 +++++++
 | |
|  tools/perf/Makefile.config              | 4 ++++
 | |
|  tools/perf/util/cloexec.h               | 6 ------
 | |
|  tools/perf/util/util.h                  | 4 ++--
 | |
|  7 files changed, 24 insertions(+), 9 deletions(-)
 | |
|  create mode 100644 tools/build/feature/test-sched_getcpu.c
 | |
| 
 | |
| diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
 | |
| index ae52e029dd22..ea0a46b4f65f 100644
 | |
| --- a/tools/build/Makefile.feature
 | |
| +++ b/tools/build/Makefile.feature
 | |
| @@ -63,6 +63,7 @@ FEATURE_TESTS_BASIC :=			\
 | |
|  	lzma				\
 | |
|  	get_cpuid			\
 | |
|  	bpf				\
 | |
| +        sched_getcpu			\
 | |
|  	sdt
 | |
|  
 | |
|  # FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
 | |
| diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
 | |
| index ac9c477a2a48..5d5f093b85a1 100644
 | |
| --- a/tools/build/feature/Makefile
 | |
| +++ b/tools/build/feature/Makefile
 | |
| @@ -47,7 +47,8 @@ FILES=					\
 | |
|  	test-bpf.bin			\
 | |
|  	test-get_cpuid.bin		\
 | |
|  	test-sdt.bin			\
 | |
| -	test-cxx.bin
 | |
| +	test-cxx.bin			\
 | |
| +        test-sched_getcpu.bin
 | |
|  
 | |
|  FILES := $(addprefix $(OUTPUT),$(FILES))
 | |
|  
 | |
| @@ -89,6 +90,9 @@ $(OUTPUT)test-libelf.bin:
 | |
|  $(OUTPUT)test-glibc.bin:
 | |
|  	$(BUILD)
 | |
|  
 | |
| +$(OUTPUT)test-sched_getcpu.bin:
 | |
| +	$(BUILD)
 | |
| +
 | |
|  DWARFLIBS := -ldw
 | |
|  ifeq ($(findstring -static,${LDFLAGS}),-static)
 | |
|  DWARFLIBS += -lelf -lebl -lz -llzma -lbz2
 | |
| diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c
 | |
| index 699e43627397..cc6c7c01f4ca 100644
 | |
| --- a/tools/build/feature/test-all.c
 | |
| +++ b/tools/build/feature/test-all.c
 | |
| @@ -117,6 +117,10 @@
 | |
|  # include "test-pthread-attr-setaffinity-np.c"
 | |
|  #undef main
 | |
|  
 | |
| +#define main main_test_sched_getcpu
 | |
| +# include "test-sched_getcpu.c"
 | |
| +#undef main
 | |
| +
 | |
|  # if 0
 | |
|  /*
 | |
|   * Disable libbabeltrace check for test-all, because the requested
 | |
| @@ -182,6 +186,7 @@ int main(int argc, char *argv[])
 | |
|  	main_test_get_cpuid();
 | |
|  	main_test_bpf();
 | |
|  	main_test_libcrypto();
 | |
| +	main_test_sched_getcpu();
 | |
|  	main_test_sdt();
 | |
|  
 | |
|  	return 0;
 | |
| diff --git a/tools/build/feature/test-sched_getcpu.c b/tools/build/feature/test-sched_getcpu.c
 | |
| new file mode 100644
 | |
| index 000000000000..c4a148dd7104
 | |
| --- /dev/null
 | |
| +++ b/tools/build/feature/test-sched_getcpu.c
 | |
| @@ -0,0 +1,7 @@
 | |
| +#define _GNU_SOURCE
 | |
| +#include <sched.h>
 | |
| +
 | |
| +int main(void)
 | |
| +{
 | |
| +	return sched_getcpu();
 | |
| +}
 | |
| diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
 | |
| index cffdd9cf3ebf..a33f737329ae 100644
 | |
| --- a/tools/perf/Makefile.config
 | |
| +++ b/tools/perf/Makefile.config
 | |
| @@ -296,6 +296,10 @@ ifdef NO_DWARF
 | |
|    NO_LIBDW_DWARF_UNWIND := 1
 | |
|  endif
 | |
|  
 | |
| +ifeq ($(feature-sched_getcpu), 1)
 | |
| +  CFLAGS += -DHAVE_SCHED_GETCPU_SUPPORT
 | |
| +endif
 | |
| +
 | |
|  ifndef NO_LIBELF
 | |
|    CFLAGS += -DHAVE_LIBELF_SUPPORT
 | |
|    EXTLIBS += -lelf
 | |
| diff --git a/tools/perf/util/cloexec.h b/tools/perf/util/cloexec.h
 | |
| index d0d465953d36..94a5a7d829d5 100644
 | |
| --- a/tools/perf/util/cloexec.h
 | |
| +++ b/tools/perf/util/cloexec.h
 | |
| @@ -3,10 +3,4 @@
 | |
|  
 | |
|  unsigned long perf_event_open_cloexec_flag(void);
 | |
|  
 | |
| -#ifdef __GLIBC_PREREQ
 | |
| -#if !__GLIBC_PREREQ(2, 6) && !defined(__UCLIBC__)
 | |
| -int sched_getcpu(void) __THROW;
 | |
| -#endif
 | |
| -#endif
 | |
| -
 | |
|  #endif /* __PERF_CLOEXEC_H */
 | |
| diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
 | |
| index 43899e0d6fa1..c3b180254f91 100644
 | |
| --- a/tools/perf/util/util.h
 | |
| +++ b/tools/perf/util/util.h
 | |
| @@ -356,8 +356,8 @@ void print_binary(unsigned char *data, size_t len,
 | |
|  		  size_t bytes_per_line, print_binary_t printer,
 | |
|  		  void *extra);
 | |
|  
 | |
| -#if !defined(__GLIBC__) && !defined(__ANDROID__)
 | |
| -extern int sched_getcpu(void);
 | |
| +#ifndef HAVE_SCHED_GETCPU_SUPPORT
 | |
| +int sched_getcpu(void);
 | |
|  #endif
 | |
|  
 | |
|  int is_printable_array(char *p, unsigned int len);
 | |
| -- 
 | |
| 2.13.0
 | |
| 
 |