From 4b7e54846392410cfed9c0a56b895f041f55d9df Mon Sep 17 00:00:00 2001 From: Wang Mingyu Date: Fri, 29 Dec 2023 11:25:44 +0800 Subject: aspell: upgrade 0.60.8 -> 0.60.8.1 CVE-2019-25051.patch removed since it's included in 0.60.8.1 Changelog: ============ -Fix memory leak in suggestion code introduced in 0.60.8. -Various documentation fixes. -Fix various warnings when compiling with -Wall. -Fix two buffer overflows found by Google's OSS-Fuzz. -Other minor updates. (From OE-Core rev: ec3c8642f71b470936b6dd29331afa467ab865c7) Signed-off-by: Wang Mingyu Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- .../recipes-test/aspell/aspell_%.bbappend | 2 + .../recipes-test/aspell/aspell_0.60.8.bbappend | 2 - meta/recipes-support/aspell/aspell_0.60.8.1.bb | 38 ++++++++ meta/recipes-support/aspell/aspell_0.60.8.bb | 41 --------- .../aspell/files/CVE-2019-25051.patch | 101 --------------------- 5 files changed, 40 insertions(+), 144 deletions(-) create mode 100644 meta-selftest/recipes-test/aspell/aspell_%.bbappend delete mode 100644 meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend create mode 100644 meta/recipes-support/aspell/aspell_0.60.8.1.bb delete mode 100644 meta/recipes-support/aspell/aspell_0.60.8.bb delete mode 100644 meta/recipes-support/aspell/files/CVE-2019-25051.patch diff --git a/meta-selftest/recipes-test/aspell/aspell_%.bbappend b/meta-selftest/recipes-test/aspell/aspell_%.bbappend new file mode 100644 index 0000000000..205720982c --- /dev/null +++ b/meta-selftest/recipes-test/aspell/aspell_%.bbappend @@ -0,0 +1,2 @@ +# This bbappend is used to alter the recipe using the test_recipe.inc file created by tests. +include test_recipe.inc diff --git a/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend b/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend deleted file mode 100644 index 205720982c..0000000000 --- a/meta-selftest/recipes-test/aspell/aspell_0.60.8.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -# This bbappend is used to alter the recipe using the test_recipe.inc file created by tests. -include test_recipe.inc diff --git a/meta/recipes-support/aspell/aspell_0.60.8.1.bb b/meta/recipes-support/aspell/aspell_0.60.8.1.bb new file mode 100644 index 0000000000..0ea9b063e0 --- /dev/null +++ b/meta/recipes-support/aspell/aspell_0.60.8.1.bb @@ -0,0 +1,38 @@ +SUMMARY = "GNU Aspell spell-checker" + +DESCRIPTION = "Spell checker designed to eventually replace Ispell. \ +It can either be used as a library or as an independent spell checker. \ +Its main feature is that it does a superior job of suggesting possible \ +replacements for a misspelled word than just about any other spell \ +checker out there for the English language." + +SECTION = "console/utils" + +HOMEPAGE = "http://aspell.net/" + +LICENSE = "LGPL-2.0-only | LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz" +SRC_URI[sha256sum] = "d6da12b34d42d457fa604e435ad484a74b2effcd120ff40acd6bb3fb2887d21b" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses" + +PACKAGES += "libaspell libpspell aspell-utils" + +RDEPENDS:${PN}-utils += "perl" + +FILES:libaspell = "${libdir}/libaspell.so.* ${libdir}/aspell*" +FILES:aspell-utils = "${bindir}/word-list-compress ${bindir}/aspell-import ${bindir}/run-with-aspell ${bindir}/pre*" +FILES:${PN} = "${bindir}/aspell" +FILES:libpspell = "${libdir}/libpspell.so.*" +FILES:${PN}-dev += "${bindir}/pspell-config" + +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" + +inherit autotools-brokensep gettext texinfo binconfig-disabled + +BINCONFIG = "${bindir}/pspell-config" diff --git a/meta/recipes-support/aspell/aspell_0.60.8.bb b/meta/recipes-support/aspell/aspell_0.60.8.bb deleted file mode 100644 index 39b55f4ff2..0000000000 --- a/meta/recipes-support/aspell/aspell_0.60.8.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "GNU Aspell spell-checker" - -DESCRIPTION = "Spell checker designed to eventually replace Ispell. \ -It can either be used as a library or as an independent spell checker. \ -Its main feature is that it does a superior job of suggesting possible \ -replacements for a misspelled word than just about any other spell \ -checker out there for the English language." - -SECTION = "console/utils" - -HOMEPAGE = "http://aspell.net/" - -LICENSE = "LGPL-2.0-only | LGPL-2.1-only" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz \ - file://CVE-2019-25051.patch \ -" -SRC_URI[md5sum] = "012fa9209203ae4e5a61c2a668fd10e3" -SRC_URI[sha256sum] = "f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses" - -PACKAGES += "libaspell libpspell aspell-utils" - -RDEPENDS:${PN}-utils += "perl" - -FILES:libaspell = "${libdir}/libaspell.so.* ${libdir}/aspell*" -FILES:aspell-utils = "${bindir}/word-list-compress ${bindir}/aspell-import ${bindir}/run-with-aspell ${bindir}/pre*" -FILES:${PN} = "${bindir}/aspell" -FILES:libpspell = "${libdir}/libpspell.so.*" -FILES:${PN}-dev += "${bindir}/pspell-config" - -ARM_INSTRUCTION_SET:armv4 = "arm" -ARM_INSTRUCTION_SET:armv5 = "arm" -ARM_INSTRUCTION_SET:armv6 = "arm" - -inherit autotools-brokensep gettext texinfo binconfig-disabled - -BINCONFIG = "${bindir}/pspell-config" diff --git a/meta/recipes-support/aspell/files/CVE-2019-25051.patch b/meta/recipes-support/aspell/files/CVE-2019-25051.patch deleted file mode 100644 index 8513f6de79..0000000000 --- a/meta/recipes-support/aspell/files/CVE-2019-25051.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 0718b375425aad8e54e1150313b862e4c6fd324a Mon Sep 17 00:00:00 2001 -From: Kevin Atkinson -Date: Sat, 21 Dec 2019 20:32:47 +0000 -Subject: [PATCH] objstack: assert that the alloc size will fit within a chunk - to prevent a buffer overflow - -Bug found using OSS-Fuze. - -Upstream-Status: Backport -[https://github.com/gnuaspell/aspell/commit/0718b375425aad8e54e1150313b862e4c6fd324a] -CVE: CVE-2019-25051 -Signed-off-by: Chee Yang Lee ---- - common/objstack.hpp | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -diff --git a/common/objstack.hpp b/common/objstack.hpp -index 3997bf7..bd97ccd 100644 ---- a/common/objstack.hpp -+++ b/common/objstack.hpp -@@ -5,6 +5,7 @@ - #include "parm_string.hpp" - #include - #include -+#include - - namespace acommon { - -@@ -26,6 +27,12 @@ class ObjStack - byte * temp_end; - void setup_chunk(); - void new_chunk(); -+ bool will_overflow(size_t sz) const { -+ return offsetof(Node,data) + sz > chunk_size; -+ } -+ void check_size(size_t sz) { -+ assert(!will_overflow(sz)); -+ } - - ObjStack(const ObjStack &); - void operator=(const ObjStack &); -@@ -56,7 +63,7 @@ class ObjStack - void * alloc_bottom(size_t size) { - byte * tmp = bottom; - bottom += size; -- if (bottom > top) {new_chunk(); tmp = bottom; bottom += size;} -+ if (bottom > top) {check_size(size); new_chunk(); tmp = bottom; bottom += size;} - return tmp; - } - // This alloc_bottom will insure that the object is aligned based on the -@@ -66,7 +73,7 @@ class ObjStack - align_bottom(align); - byte * tmp = bottom; - bottom += size; -- if (bottom > top) {new_chunk(); goto loop;} -+ if (bottom > top) {check_size(size); new_chunk(); goto loop;} - return tmp; - } - char * dup_bottom(ParmString str) { -@@ -79,7 +86,7 @@ class ObjStack - // always be aligned as such. - void * alloc_top(size_t size) { - top -= size; -- if (top < bottom) {new_chunk(); top -= size;} -+ if (top < bottom) {check_size(size); new_chunk(); top -= size;} - return top; - } - // This alloc_top will insure that the object is aligned based on -@@ -88,7 +95,7 @@ class ObjStack - {loop: - top -= size; - align_top(align); -- if (top < bottom) {new_chunk(); goto loop;} -+ if (top < bottom) {check_size(size); new_chunk(); goto loop;} - return top; - } - char * dup_top(ParmString str) { -@@ -117,6 +124,7 @@ class ObjStack - void * alloc_temp(size_t size) { - temp_end = bottom + size; - if (temp_end > top) { -+ check_size(size); - new_chunk(); - temp_end = bottom + size; - } -@@ -131,6 +139,7 @@ class ObjStack - } else { - size_t s = temp_end - bottom; - byte * p = bottom; -+ check_size(size); - new_chunk(); - memcpy(bottom, p, s); - temp_end = bottom + size; -@@ -150,6 +159,7 @@ class ObjStack - } else { - size_t s = temp_end - bottom; - byte * p = bottom; -+ check_size(size); - new_chunk(); - memcpy(bottom, p, s); - temp_end = bottom + size; -- cgit v1.2.3-54-g00ecf