Accepting request 909814 from devel:libraries:c_c++
- security update - modified patches % aspell-quotes.patch (p1) % aspell-strict-aliasing.patch (p1) - added patches fix CVE-2019-25051 [bsc#1188576], heap-buffer-overflow in acommon:ObjStack:dup_top + aspell-CVE-2019-25051.patch OBS-URL: https://build.opensuse.org/request/show/909814 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/aspell?expand=0&rev=40
This commit is contained in:
commit
3cb792cea8
86
aspell-CVE-2019-25051.patch
Normal file
86
aspell-CVE-2019-25051.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
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 <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
|
+#include <stddef.h>
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
--- scripts/run-with-aspell.create
|
--- a/scripts/run-with-aspell.create
|
||||||
+++ scripts/run-with-aspell.create
|
+++ b/scripts/run-with-aspell.create
|
||||||
@@ -3,5 +3,5 @@
|
@@ -3,5 +3,5 @@
|
||||||
echo "#!/bin/sh"
|
echo "#!/bin/sh"
|
||||||
echo "PATH=$1:\$PATH"
|
echo "PATH=$1:\$PATH"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
--- modules/speller/default/writable.cpp
|
--- a/modules/speller/default/writable.cpp
|
||||||
+++ modules/speller/default/writable.cpp
|
+++ b/modules/speller/default/writable.cpp
|
||||||
@@ -672,7 +672,7 @@
|
@@ -672,7 +672,7 @@
|
||||||
|
|
||||||
static void repl_next(WordEntry * w)
|
static void repl_next(WordEntry * w)
|
||||||
@ -9,8 +9,8 @@
|
|||||||
const Str * end = (const Str * )(w->intr[1]);
|
const Str * end = (const Str * )(w->intr[1]);
|
||||||
set_word(*w, *i);
|
set_word(*w, *i);
|
||||||
++i;
|
++i;
|
||||||
--- modules/speller/default/writable.cpp
|
--- a/modules/speller/default/writable.cpp
|
||||||
+++ modules/speller/default/writable.cpp
|
+++ b/modules/speller/default/writable.cpp
|
||||||
@@ -246,7 +246,7 @@
|
@@ -246,7 +246,7 @@
|
||||||
|
|
||||||
static void soundslike_next(WordEntry * w)
|
static void soundslike_next(WordEntry * w)
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 2 14:34:44 UTC 2021 - pgajdos@suse.com
|
||||||
|
|
||||||
|
- security update
|
||||||
|
- modified patches
|
||||||
|
% aspell-quotes.patch (p1)
|
||||||
|
% aspell-strict-aliasing.patch (p1)
|
||||||
|
- added patches
|
||||||
|
fix CVE-2019-25051 [bsc#1188576], heap-buffer-overflow in acommon:ObjStack:dup_top
|
||||||
|
+ aspell-CVE-2019-25051.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Oct 9 14:19:57 UTC 2020 - pgajdos@suse.com
|
Fri Oct 9 14:19:57 UTC 2020 - pgajdos@suse.com
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package aspell
|
# spec file for package aspell
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020 SUSE LLC
|
# Copyright (c) 2021 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -31,6 +31,8 @@ Source100: baselibs.conf
|
|||||||
Patch0: aspell-strict-aliasing.patch
|
Patch0: aspell-strict-aliasing.patch
|
||||||
# PATCH-FIX-OPENSUSE aspell-quotes.patch lmichnovic@suse.cz -- Fix command execution in script "run-with-aspell"
|
# PATCH-FIX-OPENSUSE aspell-quotes.patch lmichnovic@suse.cz -- Fix command execution in script "run-with-aspell"
|
||||||
Patch1: aspell-quotes.patch
|
Patch1: aspell-quotes.patch
|
||||||
|
# CVE-2019-25051 [bsc#1188576], heap-buffer-overflow in acommon:ObjStack:dup_top
|
||||||
|
Patch2: aspell-CVE-2019-25051.patch
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
@ -117,7 +119,7 @@ can be used as a library or as an independent spell checker.
|
|||||||
This package contains the pspell compatibility library.
|
This package contains the pspell compatibility library.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p0
|
%autosetup -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
|
Loading…
x
Reference in New Issue
Block a user