diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-11-17 17:19:41 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-11-20 10:32:15 +0000 |
commit | ceafdb6953f18d423437cdd462d6e6249a809373 (patch) | |
tree | 692b8be8e98da70e51c0948730009fe8e886622c | |
parent | 6ac57237697b4ffff86f7c843b70a05996ba51bd (diff) | |
download | poky-ceafdb6953f18d423437cdd462d6e6249a809373.tar.gz |
nasm: Upgrade 2.13.03 -> 2.14
The patches are all backports or have equivalent changes in the new
release so can be dropped.
Upstream reworked the install handling to use DESTDIR instead of INSTALLROOT
and we no longer need to create directories.
(From OE-Core rev: ac9b892f06237a384a60d0404e6ed0afd63c1005)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
8 files changed, 25 insertions, 284 deletions
diff --git a/meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch b/meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch deleted file mode 100644 index a56a08b5a8..0000000000 --- a/meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | From c5785fdf1d660eaefb9711284414262d0cfe8843 Mon Sep 17 00:00:00 2001 | ||
2 | From: Adam Majer <amajer@suse.de> | ||
3 | Date: Fri, 17 Aug 2018 14:48:17 +0800 | ||
4 | Subject: [PATCH] Verify that we are not reading past end of a buffer | ||
5 | |||
6 | Simple reproducer is just, | ||
7 | |||
8 | ret &d:ep | ||
9 | |||
10 | which triggers a buffer overread due to parsing of an invalid | ||
11 | segment override. | ||
12 | |||
13 | Signed-off-by: Adam Majer <amajer@suse.de> | ||
14 | |||
15 | Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392447] | ||
16 | CVE: CVE-2018-8883 | ||
17 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
18 | --- | ||
19 | include/opflags.h | 2 +- | ||
20 | include/tables.h | 1 + | ||
21 | x86/regs.pl | 3 ++- | ||
22 | 3 files changed, 4 insertions(+), 2 deletions(-) | ||
23 | |||
24 | diff --git a/include/opflags.h b/include/opflags.h | ||
25 | index ef2838c1..8d4b6b1e 100644 | ||
26 | --- a/include/opflags.h | ||
27 | +++ b/include/opflags.h | ||
28 | @@ -166,7 +166,7 @@ | ||
29 | #define REG_CLASS_BND GEN_REG_CLASS(9) | ||
30 | |||
31 | #define is_class(class, op) (!((opflags_t)(class) & ~(opflags_t)(op))) | ||
32 | -#define is_reg_class(class, reg) is_class((class), nasm_reg_flags[(reg)]) | ||
33 | +#define is_reg_class(class, reg) is_class((class), ((reg) < nasm_reg_flags_size ? nasm_reg_flags[(reg)] : 0)) | ||
34 | |||
35 | #define IS_SREG(reg) is_reg_class(REG_SREG, (reg)) | ||
36 | #define IS_FSGS(reg) is_reg_class(REG_FSGS, (reg)) | ||
37 | diff --git a/include/tables.h b/include/tables.h | ||
38 | index 24a665e2..458752ce 100644 | ||
39 | --- a/include/tables.h | ||
40 | +++ b/include/tables.h | ||
41 | @@ -64,6 +64,7 @@ extern const char * const nasm_reg_names[]; | ||
42 | typedef uint64_t opflags_t; | ||
43 | typedef uint16_t decoflags_t; | ||
44 | extern const opflags_t nasm_reg_flags[]; | ||
45 | +extern const size_t nasm_reg_flags_size; | ||
46 | /* regvals.c */ | ||
47 | extern const int nasm_regvals[]; | ||
48 | |||
49 | diff --git a/x86/regs.pl b/x86/regs.pl | ||
50 | index 3a1b56f5..cb5cea68 100755 | ||
51 | --- a/x86/regs.pl | ||
52 | +++ b/x86/regs.pl | ||
53 | @@ -158,7 +158,8 @@ if ( $fmt eq 'h' ) { | ||
54 | printf " %-15s /* %-5s */\n", | ||
55 | $regs{$reg}.',', $reg; | ||
56 | } | ||
57 | - print "};\n"; | ||
58 | + print "};\n\n"; | ||
59 | + print "const size_t nasm_reg_flags_size = sizeof(nasm_reg_flags) / sizeof(opflags_t);\n"; | ||
60 | } elsif ( $fmt eq 'vc' ) { | ||
61 | # Output regvals.c | ||
62 | print "/* automatically generated from $file - do not edit */\n\n"; | ||
63 | -- | ||
64 | 2.17.1 | ||
65 | |||
diff --git a/meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch b/meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch deleted file mode 100644 index 12ae3a94df..0000000000 --- a/meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | From 77c3a77210d8ca8b94e999c711156e984a8dc737 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 31 Mar 2018 11:05:33 -0700 | ||
4 | Subject: [PATCH] asmlib: Drop pure function attribute from seg_init | ||
5 | |||
6 | seg_init returns void, so it is impure function | ||
7 | |||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | --- | ||
10 | Upstream-Status: Submitted | ||
11 | |||
12 | include/nasmlib.h | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/include/nasmlib.h b/include/nasmlib.h | ||
16 | index 79e866b..b80b7e2 100644 | ||
17 | --- a/include/nasmlib.h | ||
18 | +++ b/include/nasmlib.h | ||
19 | @@ -191,7 +191,7 @@ int64_t readstrnum(char *str, int length, bool *warn); | ||
20 | * seg_init: Initialise the segment-number allocator. | ||
21 | * seg_alloc: allocate a hitherto unused segment number. | ||
22 | */ | ||
23 | -void pure_func seg_init(void); | ||
24 | +void seg_init(void); | ||
25 | int32_t pure_func seg_alloc(void); | ||
26 | |||
27 | /* | ||
diff --git a/meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch b/meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch deleted file mode 100644 index 682d4c7277..0000000000 --- a/meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | From 7a46d6b9e3a1d8a0ab0d816ef1bf194ad285e082 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Chang S. Bae" <chang.seok.bae@intel.com> | ||
3 | Date: Fri, 17 Aug 2018 14:26:03 +0800 | ||
4 | Subject: [PATCH] assemble: Check global line limit | ||
5 | |||
6 | Without the limit, the while loop opens to semi-infinite | ||
7 | that will exhaustively consume the heap space. Also, the | ||
8 | index value gets into the garbage. | ||
9 | |||
10 | https://bugzilla.nasm.us/show_bug.cgi?id=3392474 | ||
11 | |||
12 | Reported-by : Dongliang Mu <mudongliangabcd@gmail.com> | ||
13 | Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com> | ||
14 | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> | ||
15 | |||
16 | Upstream-Status: Backport from upstream [http://repo.or.cz/nasm.git] | ||
17 | CVE: CVE-2018-10316 | ||
18 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
19 | --- | ||
20 | asm/nasm.c | 7 ++++++- | ||
21 | 1 file changed, 6 insertions(+), 1 deletion(-) | ||
22 | |||
23 | diff --git a/asm/nasm.c b/asm/nasm.c | ||
24 | index 8497ec9..81f6cee 100644 | ||
25 | --- a/asm/nasm.c | ||
26 | +++ b/asm/nasm.c | ||
27 | @@ -99,6 +99,8 @@ static char outname[FILENAME_MAX]; | ||
28 | static char listname[FILENAME_MAX]; | ||
29 | static char errname[FILENAME_MAX]; | ||
30 | static int globallineno; /* for forward-reference tracking */ | ||
31 | +#define GLOBALLINENO_MAX INT32_MAX | ||
32 | + | ||
33 | /* static int pass = 0; */ | ||
34 | const struct ofmt *ofmt = &OF_DEFAULT; | ||
35 | const struct ofmt_alias *ofmt_alias = NULL; | ||
36 | @@ -1360,7 +1362,10 @@ static void assemble_file(char *fname, StrList **depend_ptr) | ||
37 | location.offset = offs = get_curr_offs(); | ||
38 | |||
39 | while ((line = preproc->getline())) { | ||
40 | - globallineno++; | ||
41 | + if (globallineno++ == GLOBALLINENO_MAX) | ||
42 | + nasm_error(ERR_FATAL, | ||
43 | + "overall line number reaches the maximum %d\n", | ||
44 | + GLOBALLINENO_MAX); | ||
45 | |||
46 | /* | ||
47 | * Here we parse our directives; this is not handled by the | ||
48 | -- | ||
49 | 2.7.4 | ||
50 | |||
diff --git a/meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch b/meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch deleted file mode 100644 index 6c332497c9..0000000000 --- a/meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | From ceec0d818798aeaa75ed4907e6135b0247ed46b2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Cyrill Gorcunov <gorcunov@gmail.com> | ||
3 | Date: Sun, 14 Oct 2018 01:26:19 +0300 | ||
4 | Subject: [PATCH] eval: Eliminate division by zero | ||
5 | |||
6 | When doing division we should detect if the value we're | ||
7 | divided by is not zero. Instead of is_unknown() helper | ||
8 | we should use is_just_unknown(). | ||
9 | |||
10 | https://bugzilla.nasm.us/show_bug.cgi?id=3392515 | ||
11 | https://bugzilla.nasm.us/show_bug.cgi?id=3392473 | ||
12 | |||
13 | Reported-by: Jun <jxx13@psu.edu> | ||
14 | Reported-by: stuartly <situlingyun@gmail.com> | ||
15 | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> | ||
16 | |||
17 | Upstream-Status: Backport [https://github.com/netwide-assembler/nasm/commit/ceec0d818798aeaa75ed4907e6135b0247ed46b2.patch] | ||
18 | CVE: CVE-2018-10016 | ||
19 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
20 | |||
21 | --- | ||
22 | asm/eval.c | 2 +- | ||
23 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
24 | |||
25 | diff --git a/asm/eval.c b/asm/eval.c | ||
26 | index 1a6680f..7e727a4 100644 | ||
27 | --- a/asm/eval.c | ||
28 | +++ b/asm/eval.c | ||
29 | @@ -580,7 +580,7 @@ static expr *expr5(int critical) | ||
30 | " scalar values"); | ||
31 | return NULL; | ||
32 | } | ||
33 | - if (j != '*' && !is_unknown(f) && reloc_value(f) == 0) { | ||
34 | + if (j != '*' && !is_just_unknown(f) && reloc_value(f) == 0) { | ||
35 | nasm_error(ERR_NONFATAL, "division by zero"); | ||
36 | return NULL; | ||
37 | } | ||
38 | -- | ||
39 | 2.10.2 | ||
40 | |||
diff --git a/meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch b/meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch deleted file mode 100644 index bc706c3f15..0000000000 --- a/meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From 33438037e00ec750bff020578b1a5b6f75f60555 Mon Sep 17 00:00:00 2001 | ||
2 | From: Adam Majer <amajer@suse.de> | ||
3 | Date: Fri, 17 Aug 2018 14:41:02 +0800 | ||
4 | Subject: [PATCH] fix CVE-2018-8882 | ||
5 | |||
6 | https://bugzilla.nasm.us/show_bug.cgi?id=3392445 | ||
7 | |||
8 | Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392445] | ||
9 | CVE: CVE-2018-8882 | ||
10 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
11 | --- | ||
12 | asm/float.c | 2 ++ | ||
13 | 1 file changed, 2 insertions(+) | ||
14 | |||
15 | diff --git a/asm/float.c b/asm/float.c | ||
16 | index dcf69fea..2965d3db 100644 | ||
17 | --- a/asm/float.c | ||
18 | +++ b/asm/float.c | ||
19 | @@ -608,6 +608,8 @@ static void ieee_shr(fp_limb *mant, int i) | ||
20 | if (offs) | ||
21 | for (j = MANT_LIMBS-1; j >= offs; j--) | ||
22 | mant[j] = mant[j-offs]; | ||
23 | + } else if (MANT_LIMBS-1-offs < 0) { | ||
24 | + j = MANT_LIMBS-1; | ||
25 | } else { | ||
26 | n = mant[MANT_LIMBS-1-offs] >> sr; | ||
27 | for (j = MANT_LIMBS-1; j > offs; j--) { | ||
28 | -- | ||
29 | 2.17.1 | ||
30 | |||
diff --git a/meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch b/meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch deleted file mode 100644 index 2121fd17f3..0000000000 --- a/meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | From a2f43331a853b7cc449cae3361ee1fb54c7fad8d Mon Sep 17 00:00:00 2001 | ||
2 | From: Cyrill Gorcunov <gorcunov@gmail.com> | ||
3 | Date: Sat, 29 Sep 2018 14:30:14 +0300 | ||
4 | Subject: [PATCH] preproc: parse_size -- Check for string provided | ||
5 | |||
6 | In case if the string is nil we will have sigsegv. | ||
7 | |||
8 | https://bugzilla.nasm.us/show_bug.cgi?id=3392507 | ||
9 | |||
10 | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> | ||
11 | |||
12 | CVE: CVE-2018-1000667 | ||
13 | Upstream-Status: Backport | ||
14 | https://repo.or.cz/nasm/nasm.git/commit/c713b5f994cf7b29164c3b6838b91f0499591434 | ||
15 | |||
16 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
17 | --- | ||
18 | asm/preproc.c | 3 +-- | ||
19 | 1 file changed, 1 insertion(+), 2 deletions(-) | ||
20 | |||
21 | diff --git a/asm/preproc.c b/asm/preproc.c | ||
22 | index 475926d..1d770a5 100644 | ||
23 | --- a/asm/preproc.c | ||
24 | +++ b/asm/preproc.c | ||
25 | @@ -2216,8 +2216,7 @@ static int parse_size(const char *str) { | ||
26 | { "byte", "dword", "oword", "qword", "tword", "word", "yword" }; | ||
27 | static const int sizes[] = | ||
28 | { 0, 1, 4, 16, 8, 10, 2, 32 }; | ||
29 | - | ||
30 | - return sizes[bsii(str, size_names, ARRAY_SIZE(size_names))+1]; | ||
31 | + return str ? sizes[bsii(str, size_names, ARRAY_SIZE(size_names))+1] : 0; | ||
32 | } | ||
33 | |||
34 | /* | ||
35 | -- | ||
36 | 2.8.1 | ||
37 | |||
diff --git a/meta/recipes-devtools/nasm/nasm_2.13.03.bb b/meta/recipes-devtools/nasm/nasm_2.13.03.bb deleted file mode 100644 index de4c55446a..0000000000 --- a/meta/recipes-devtools/nasm/nasm_2.13.03.bb +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | SUMMARY = "General-purpose x86 assembler" | ||
2 | SECTION = "devel" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe" | ||
5 | |||
6 | SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2 \ | ||
7 | file://0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch \ | ||
8 | file://0001-assemble-Check-global-line-limit.patch \ | ||
9 | file://0001-fix-CVE-2018-8882.patch \ | ||
10 | file://0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch \ | ||
11 | file://0001-eval-Eliminate-division-by-zero.patch \ | ||
12 | file://0001-preproc-parse_size-Check-for-string-provided.patch \ | ||
13 | " | ||
14 | |||
15 | SRC_URI[md5sum] = "0c581d482f39d5111879ca9601938f74" | ||
16 | SRC_URI[sha256sum] = "63ec86477ad3f0f6292325fd89e1d93aea2e2fd490070863f17d48f7cd387011" | ||
17 | |||
18 | inherit autotools-brokensep | ||
19 | |||
20 | do_configure_prepend () { | ||
21 | if [ -f ${S}/aclocal.m4 ] && [ ! -f ${S}/acinclude.m4 ]; then | ||
22 | mv ${S}/aclocal.m4 ${S}/acinclude.m4 | ||
23 | fi | ||
24 | } | ||
25 | |||
26 | do_install() { | ||
27 | install -d ${D}${bindir} | ||
28 | install -d ${D}${mandir}/man1 | ||
29 | |||
30 | oe_runmake 'INSTALLROOT=${D}' install | ||
31 | } | ||
32 | |||
33 | BBCLASSEXTEND = "native" | ||
34 | |||
35 | DEPENDS = "groff-native" | ||
diff --git a/meta/recipes-devtools/nasm/nasm_2.14.bb b/meta/recipes-devtools/nasm/nasm_2.14.bb new file mode 100644 index 0000000000..231d4e6b15 --- /dev/null +++ b/meta/recipes-devtools/nasm/nasm_2.14.bb | |||
@@ -0,0 +1,25 @@ | |||
1 | SUMMARY = "General-purpose x86 assembler" | ||
2 | SECTION = "devel" | ||
3 | LICENSE = "BSD-2-Clause" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe" | ||
5 | |||
6 | SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2" | ||
7 | |||
8 | SRC_URI[md5sum] = "238a240d3f869a52f8ac38ee3f8faafa" | ||
9 | SRC_URI[sha256sum] = "d43cfd27cad53d0c22a9bf9702e9dffcc7018a0df21d15b92c56d250d747c744" | ||
10 | |||
11 | inherit autotools-brokensep | ||
12 | |||
13 | do_configure_prepend () { | ||
14 | if [ -f ${S}/aclocal.m4 ] && [ ! -f ${S}/acinclude.m4 ]; then | ||
15 | mv ${S}/aclocal.m4 ${S}/acinclude.m4 | ||
16 | fi | ||
17 | } | ||
18 | |||
19 | do_install() { | ||
20 | oe_runmake 'DESTDIR=${D}' install | ||
21 | } | ||
22 | |||
23 | BBCLASSEXTEND = "native" | ||
24 | |||
25 | DEPENDS = "groff-native" | ||