summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2018-11-17 17:19:41 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-11-20 10:32:15 +0000
commitceafdb6953f18d423437cdd462d6e6249a809373 (patch)
tree692b8be8e98da70e51c0948730009fe8e886622c
parent6ac57237697b4ffff86f7c843b70a05996ba51bd (diff)
downloadpoky-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>
-rw-r--r--meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch65
-rw-r--r--meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch27
-rw-r--r--meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch50
-rw-r--r--meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch40
-rw-r--r--meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch30
-rw-r--r--meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch37
-rw-r--r--meta/recipes-devtools/nasm/nasm_2.13.03.bb35
-rw-r--r--meta/recipes-devtools/nasm/nasm_2.14.bb25
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 @@
1From c5785fdf1d660eaefb9711284414262d0cfe8843 Mon Sep 17 00:00:00 2001
2From: Adam Majer <amajer@suse.de>
3Date: Fri, 17 Aug 2018 14:48:17 +0800
4Subject: [PATCH] Verify that we are not reading past end of a buffer
5
6Simple reproducer is just,
7
8 ret &d:ep
9
10which triggers a buffer overread due to parsing of an invalid
11segment override.
12
13Signed-off-by: Adam Majer <amajer@suse.de>
14
15Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392447]
16CVE: CVE-2018-8883
17Signed-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
24diff --git a/include/opflags.h b/include/opflags.h
25index 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))
37diff --git a/include/tables.h b/include/tables.h
38index 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
49diff --git a/x86/regs.pl b/x86/regs.pl
50index 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--
642.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 @@
1From 77c3a77210d8ca8b94e999c711156e984a8dc737 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 31 Mar 2018 11:05:33 -0700
4Subject: [PATCH] asmlib: Drop pure function attribute from seg_init
5
6seg_init returns void, so it is impure function
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10Upstream-Status: Submitted
11
12 include/nasmlib.h | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/include/nasmlib.h b/include/nasmlib.h
16index 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 @@
1From 7a46d6b9e3a1d8a0ab0d816ef1bf194ad285e082 Mon Sep 17 00:00:00 2001
2From: "Chang S. Bae" <chang.seok.bae@intel.com>
3Date: Fri, 17 Aug 2018 14:26:03 +0800
4Subject: [PATCH] assemble: Check global line limit
5
6Without the limit, the while loop opens to semi-infinite
7that will exhaustively consume the heap space. Also, the
8index value gets into the garbage.
9
10https://bugzilla.nasm.us/show_bug.cgi?id=3392474
11
12Reported-by : Dongliang Mu <mudongliangabcd@gmail.com>
13Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
14Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
15
16Upstream-Status: Backport from upstream [http://repo.or.cz/nasm.git]
17CVE: CVE-2018-10316
18Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
19---
20 asm/nasm.c | 7 ++++++-
21 1 file changed, 6 insertions(+), 1 deletion(-)
22
23diff --git a/asm/nasm.c b/asm/nasm.c
24index 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--
492.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 @@
1From ceec0d818798aeaa75ed4907e6135b0247ed46b2 Mon Sep 17 00:00:00 2001
2From: Cyrill Gorcunov <gorcunov@gmail.com>
3Date: Sun, 14 Oct 2018 01:26:19 +0300
4Subject: [PATCH] eval: Eliminate division by zero
5
6When doing division we should detect if the value we're
7divided by is not zero. Instead of is_unknown() helper
8we should use is_just_unknown().
9
10https://bugzilla.nasm.us/show_bug.cgi?id=3392515
11https://bugzilla.nasm.us/show_bug.cgi?id=3392473
12
13Reported-by: Jun <jxx13@psu.edu>
14Reported-by: stuartly <situlingyun@gmail.com>
15Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
16
17Upstream-Status: Backport [https://github.com/netwide-assembler/nasm/commit/ceec0d818798aeaa75ed4907e6135b0247ed46b2.patch]
18CVE: CVE-2018-10016
19Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
20
21---
22 asm/eval.c | 2 +-
23 1 file changed, 1 insertion(+), 1 deletion(-)
24
25diff --git a/asm/eval.c b/asm/eval.c
26index 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--
392.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 @@
1From 33438037e00ec750bff020578b1a5b6f75f60555 Mon Sep 17 00:00:00 2001
2From: Adam Majer <amajer@suse.de>
3Date: Fri, 17 Aug 2018 14:41:02 +0800
4Subject: [PATCH] fix CVE-2018-8882
5
6https://bugzilla.nasm.us/show_bug.cgi?id=3392445
7
8Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392445]
9CVE: CVE-2018-8882
10Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
11---
12 asm/float.c | 2 ++
13 1 file changed, 2 insertions(+)
14
15diff --git a/asm/float.c b/asm/float.c
16index 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--
292.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 @@
1From a2f43331a853b7cc449cae3361ee1fb54c7fad8d Mon Sep 17 00:00:00 2001
2From: Cyrill Gorcunov <gorcunov@gmail.com>
3Date: Sat, 29 Sep 2018 14:30:14 +0300
4Subject: [PATCH] preproc: parse_size -- Check for string provided
5
6In case if the string is nil we will have sigsegv.
7
8https://bugzilla.nasm.us/show_bug.cgi?id=3392507
9
10Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
11
12CVE: CVE-2018-1000667
13Upstream-Status: Backport
14https://repo.or.cz/nasm/nasm.git/commit/c713b5f994cf7b29164c3b6838b91f0499591434
15
16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17---
18 asm/preproc.c | 3 +--
19 1 file changed, 1 insertion(+), 2 deletions(-)
20
21diff --git a/asm/preproc.c b/asm/preproc.c
22index 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--
362.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 @@
1SUMMARY = "General-purpose x86 assembler"
2SECTION = "devel"
3LICENSE = "BSD-2-Clause"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe"
5
6SRC_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
15SRC_URI[md5sum] = "0c581d482f39d5111879ca9601938f74"
16SRC_URI[sha256sum] = "63ec86477ad3f0f6292325fd89e1d93aea2e2fd490070863f17d48f7cd387011"
17
18inherit autotools-brokensep
19
20do_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
26do_install() {
27 install -d ${D}${bindir}
28 install -d ${D}${mandir}/man1
29
30 oe_runmake 'INSTALLROOT=${D}' install
31}
32
33BBCLASSEXTEND = "native"
34
35DEPENDS = "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 @@
1SUMMARY = "General-purpose x86 assembler"
2SECTION = "devel"
3LICENSE = "BSD-2-Clause"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe"
5
6SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2"
7
8SRC_URI[md5sum] = "238a240d3f869a52f8ac38ee3f8faafa"
9SRC_URI[sha256sum] = "d43cfd27cad53d0c22a9bf9702e9dffcc7018a0df21d15b92c56d250d747c744"
10
11inherit autotools-brokensep
12
13do_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
19do_install() {
20 oe_runmake 'DESTDIR=${D}' install
21}
22
23BBCLASSEXTEND = "native"
24
25DEPENDS = "groff-native"