Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d885e78cab | ||
|
|
605a835250 | ||
|
|
b6354c53ae | ||
|
|
2877150e9d | ||
|
|
99b286e962 | ||
|
|
394391740d |
4 changed files with 172 additions and 6 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,2 +1,3 @@
|
|||
/aha-0.4.10.6.tar.gz
|
||||
/aha-0.5.tar.gz
|
||||
/aha-0.5.1.tar.gz
|
||||
|
|
|
|||
151
0000-fix-null-pointer-dereference.patch
Normal file
151
0000-fix-null-pointer-dereference.patch
Normal 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;
|
||||
24
aha.spec
24
aha.spec
|
|
@ -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
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (aha-0.5.tar.gz) = 2fbf0be928d8ea0491f6710d96eddd135253cadce6cc8c00f342e03e030ee16a3ff1eb6a559740cdd642b074c9e4e3fd9a76412272ffeb0b7bb419b0dcb6dbc1
|
||||
SHA512 (aha-0.5.1.tar.gz) = 0eb88e681208c0956e344d6574f9d7ba155d38bfb386d0a9f17022c5e925fb16d0efb6aa04804191b4cac1697a87a0f16ba51bcd97b6135cc7606046eaf89288
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue