summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-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"