From 394391740d833d1b6c8edd92fcf8e9355ab03e55 Mon Sep 17 00:00:00 2001 From: Gwyn Ciesla Date: Thu, 30 Jan 2020 08:57:47 -0600 Subject: [PATCH 1/4] "Adding package.cfg file" --- package.cfg | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 package.cfg diff --git a/package.cfg b/package.cfg new file mode 100644 index 0000000..66ea79d --- /dev/null +++ b/package.cfg @@ -0,0 +1,2 @@ +[koji] +targets = epel8 epel8-playground \ No newline at end of file From 2877150e9d53088494440b2daa45a2d1ecd02c0b Mon Sep 17 00:00:00 2001 From: Artur Frenszek-Iwicki Date: Mon, 14 Sep 2020 14:58:00 +0200 Subject: [PATCH 2/4] Update to latest upstream release (v0.5.1) --- .gitignore | 1 + aha.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c324909..8dcdd79 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /aha-0.4.10.6.tar.gz /aha-0.5.tar.gz +/aha-0.5.1.tar.gz diff --git a/aha.spec b/aha.spec index 4617ef2..a33948e 100644 --- a/aha.spec +++ b/aha.spec @@ -1,5 +1,5 @@ Name: aha -Version: 0.5 +Version: 0.5.1 Release: 1%{?dist} Summary: Convert terminal output to HTML @@ -38,6 +38,9 @@ cat aha.c | awk '1;/\*\//{exit}' > LICENSE %changelog +* Mon Sep 14 2020 Artur Frenszek-Iwicki - 0.5.1-1 +- Update to latest upstream release + * Sat Oct 27 2018 Artur Iwicki - 0.5-1 - Update to latest upstream release diff --git a/sources b/sources index 97ad0fa..3141ff5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (aha-0.5.tar.gz) = 2fbf0be928d8ea0491f6710d96eddd135253cadce6cc8c00f342e03e030ee16a3ff1eb6a559740cdd642b074c9e4e3fd9a76412272ffeb0b7bb419b0dcb6dbc1 +SHA512 (aha-0.5.1.tar.gz) = 0eb88e681208c0956e344d6574f9d7ba155d38bfb386d0a9f17022c5e925fb16d0efb6aa04804191b4cac1697a87a0f16ba51bcd97b6135cc7606046eaf89288 From b6354c53aeefa4d80774c41df320a403f6e812ce Mon Sep 17 00:00:00 2001 From: Troy Dawson Date: Thu, 24 Sep 2020 16:06:38 +0000 Subject: [PATCH 3/4] remove package.cfg per new epel-playground policy --- package.cfg | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 package.cfg diff --git a/package.cfg b/package.cfg deleted file mode 100644 index 66ea79d..0000000 --- a/package.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[koji] -targets = epel8 epel8-playground \ No newline at end of file From 605a835250d69a4c5fa0a94806848cb829dc85f5 Mon Sep 17 00:00:00 2001 From: Artur Frenszek-Iwicki Date: Mon, 11 Jul 2022 12:12:12 +0200 Subject: [PATCH 4/4] Add a patch to fix null pointer dereference --- 0000-fix-null-pointer-dereference.patch | 151 ++++++++++++++++++++++++ aha.spec | 21 +++- 2 files changed, 167 insertions(+), 5 deletions(-) create mode 100644 0000-fix-null-pointer-dereference.patch diff --git a/0000-fix-null-pointer-dereference.patch b/0000-fix-null-pointer-dereference.patch new file mode 100644 index 0000000..ef4206e --- /dev/null +++ b/0000-fix-null-pointer-dereference.patch @@ -0,0 +1,151 @@ +From a340963e0c40f3ea85fea911c79fbaaa5af93e27 Mon Sep 17 00:00:00 2001 +From: suve +Date: Thu, 9 Jun 2022 15:46:20 +0200 +Subject: [PATCH 1/2] Check if 24-bit colour codes contain 3 arguments + +--- + aha.c | 64 ++++++++++++++++++++++++++--------------------------------- + 1 file changed, 28 insertions(+), 36 deletions(-) + +diff --git a/aha.c b/aha.c +index 46e43c0..bf22373 100644 +--- a/aha.c ++++ b/aha.c +@@ -833,25 +833,21 @@ int main(int argc,char* args[]) + if (momelem->value == 38 && + momelem->next && + momelem->next->value == 2 && +- momelem->next->next)// 38;2; -> 24 Bit ++ momelem->next->next && ++ momelem->next->next->next && ++ momelem->next->next->next->next)// 38;2;;; -> 24 Bit + { +- momelem = momelem->next->next; +- pelem r,g,b; +- r = momelem; +- momelem = momelem->next; +- g = momelem; +- if ( momelem ) +- momelem = momelem->next; +- b = momelem; +- if ( r && g && b ) +- { +- state.highlighted = 0; +- state.fc_colormode = MODE_24BIT; +- *dest = +- (r->value & 255) * 65536 + +- (g->value & 255) * 256 + +- (b->value & 255); +- } ++ pelem r = momelem->next->next; ++ pelem g = r->next; ++ pelem b = g->next; ++ momelem = b; ++ ++ state.highlighted = 0; ++ state.fc_colormode = MODE_24BIT; ++ *dest = ++ (r->value & 255) * 65536 + ++ (g->value & 255) * 256 + ++ (b->value & 255); + } + else + { +@@ -901,25 +897,21 @@ int main(int argc,char* args[]) + if (momelem->value == 48 && + momelem->next && + momelem->next->value == 2 && +- momelem->next->next)// 48;2; -> 24 Bit ++ momelem->next->next && ++ momelem->next->next->next && ++ momelem->next->next->next->next)// 48;2;;; -> 24 Bit + { +- momelem = momelem->next->next; +- pelem r,g,b; +- r = momelem; +- momelem = momelem->next; +- g = momelem; +- if ( momelem ) +- momelem = momelem->next; +- b = momelem; +- if ( r && g && b ) +- { +- state.bc_colormode = MODE_24BIT; +- state.highlighted = 0; +- *dest = +- (r->value & 255) * 65536 + +- (g->value & 255) * 256 + +- (b->value & 255); +- } ++ pelem r = momelem->next->next; ++ pelem g = r->next; ++ pelem b = g->next; ++ momelem = b; ++ ++ state.bc_colormode = MODE_24BIT; ++ state.highlighted = 0; ++ *dest = ++ (r->value & 255) * 65536 + ++ (g->value & 255) * 256 + ++ (b->value & 255); + } + else + { + +From 1b8b994b058920cdc2fe144dca3243bacf1d49b2 Mon Sep 17 00:00:00 2001 +From: suve +Date: Thu, 9 Jun 2022 15:55:29 +0200 +Subject: [PATCH 2/2] Add a helper function to avoid ->next checks + +--- + aha.c | 23 +++++++++++++---------- + 1 file changed, 13 insertions(+), 10 deletions(-) + +diff --git a/aha.c b/aha.c +index bf22373..2bfebb7 100644 +--- a/aha.c ++++ b/aha.c +@@ -138,6 +138,15 @@ pelem parseInsert(char* s) + return firstelem; + } + ++int parseDepthAtLeast(pelem elem, unsigned int wanted) { ++ while (elem != NULL) { ++ if (wanted == 0) return 1; ++ elem = elem->next; ++ --wanted; ++ } ++ return 0; ++} ++ + void deleteParse(pelem elem) + { + while (elem!=NULL) +@@ -831,11 +840,8 @@ int main(int argc,char* args[]) + } + else + if (momelem->value == 38 && +- momelem->next && +- momelem->next->value == 2 && +- momelem->next->next && +- momelem->next->next->next && +- momelem->next->next->next->next)// 38;2;;; -> 24 Bit ++ parseDepthAtLeast(momelem, 4) && ++ momelem->next->value == 2)// 38;2;;; -> 24 Bit + { + pelem r = momelem->next->next; + pelem g = r->next; +@@ -895,11 +901,8 @@ int main(int argc,char* args[]) + } + else + if (momelem->value == 48 && +- momelem->next && +- momelem->next->value == 2 && +- momelem->next->next && +- momelem->next->next->next && +- momelem->next->next->next->next)// 48;2;;; -> 24 Bit ++ parseDepthAtLeast(momelem, 4) && ++ momelem->next->value == 2)// 48;2;;; -> 24 Bit + { + pelem r = momelem->next->next; + pelem g = r->next; diff --git a/aha.spec b/aha.spec index a33948e..01cec12 100644 --- a/aha.spec +++ b/aha.spec @@ -1,13 +1,21 @@ Name: aha -Version: 0.5.1 -Release: 1%{?dist} Summary: Convert terminal output to HTML - License: MPLv1.1 or LGPLv2+ + +Version: 0.5.1 +Release: 2%{?dist} + URL: https://github.com/theZiz/aha Source0: %{URL}/archive/%{version}/%{name}-%{version}.tar.gz -BuildRequires: gcc make +# Fix a null pointer dereference when interpreting +# invalid 24-bit color code escape sequences. +# +# Submitted upstream: https://github.com/theZiz/aha/pull/97 +Patch0: 0000-fix-null-pointer-dereference.patch + +BuildRequires: gcc +BuildRequires: make %description @@ -17,7 +25,7 @@ and produces an HTML rendition of the original text. %prep -%setup -q +%autosetup -p1 # Extract license header from source code cat aha.c | awk '1;/\*\//{exit}' > LICENSE @@ -38,6 +46,9 @@ cat aha.c | awk '1;/\*\//{exit}' > LICENSE %changelog +* Mon Jul 11 2022 Artur Frenszek-Iwicki - 0.5.1-2 +- Add a patch to fix segfault because of null pointer dereference + * Mon Sep 14 2020 Artur Frenszek-Iwicki - 0.5.1-1 - Update to latest upstream release