Compare commits

...
Sign in to create a new pull request.

6 commits

Author SHA1 Message Date
Artur Frenszek-Iwicki
d885e78cab Merge branch 'epel8' into 'epel9' 2022-07-11 19:14:25 +02:00
Artur Frenszek-Iwicki
605a835250 Add a patch to fix null pointer dereference 2022-07-11 13:09:53 +02:00
Troy Dawson
b6354c53ae remove package.cfg per new epel-playground policy 2020-09-24 16:06:38 +00:00
Artur Frenszek-Iwicki
2877150e9d Update to latest upstream release (v0.5.1) 2020-09-14 14:58:00 +02:00
Artur Iwicki
99b286e962 Merge branch 'epel7' into 'epel8' 2020-08-08 15:42:48 +02:00
Gwyn Ciesla
394391740d "Adding package.cfg file" 2020-01-30 08:57:47 -06:00
4 changed files with 172 additions and 6 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
/aha-0.4.10.6.tar.gz
/aha-0.5.tar.gz
/aha-0.5.1.tar.gz

View file

@ -0,0 +1,151 @@
From a340963e0c40f3ea85fea911c79fbaaa5af93e27 Mon Sep 17 00:00:00 2001
From: suve <veg@svgames.pl>
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;<n> -> 24 Bit
+ momelem->next->next &&
+ momelem->next->next->next &&
+ momelem->next->next->next->next)// 38;2;<r>;<g>;<b> -> 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;<n> -> 24 Bit
+ momelem->next->next &&
+ momelem->next->next->next &&
+ momelem->next->next->next->next)// 48;2;<r>;<g>;<b> -> 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 <veg@svgames.pl>
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;<r>;<g>;<b> -> 24 Bit
+ parseDepthAtLeast(momelem, 4) &&
+ momelem->next->value == 2)// 38;2;<r>;<g>;<b> -> 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;<r>;<g>;<b> -> 24 Bit
+ parseDepthAtLeast(momelem, 4) &&
+ momelem->next->value == 2)// 48;2;<r>;<g>;<b> -> 24 Bit
{
pelem r = momelem->next->next;
pelem g = r->next;

View file

@ -1,13 +1,21 @@
Name: aha
Version: 0.5
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,12 @@ cat aha.c | awk '1;/\*\//{exit}' > LICENSE
%changelog
* Mon Jul 11 2022 Artur Frenszek-Iwicki <fedora@svgames.pl> - 0.5.1-2
- Add a patch to fix segfault because of null pointer dereference
* Mon Sep 14 2020 Artur Frenszek-Iwicki <fedora@svgames.pl> - 0.5.1-1
- Update to latest upstream release
* Sat Oct 27 2018 Artur Iwicki <fedora@svgames.pl> - 0.5-1
- Update to latest upstream release

View file

@ -1 +1 @@
SHA512 (aha-0.5.tar.gz) = 2fbf0be928d8ea0491f6710d96eddd135253cadce6cc8c00f342e03e030ee16a3ff1eb6a559740cdd642b074c9e4e3fd9a76412272ffeb0b7bb419b0dcb6dbc1
SHA512 (aha-0.5.1.tar.gz) = 0eb88e681208c0956e344d6574f9d7ba155d38bfb386d0a9f17022c5e925fb16d0efb6aa04804191b4cac1697a87a0f16ba51bcd97b6135cc7606046eaf89288