Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
1327358f09
!31 Upgrade to version 2.0.20230219
From: @chen-jan 
Reviewed-by: @lyn1001 
Signed-off-by: @lyn1001
2023-06-16 08:00:17 +00:00
chen-jan
7013798c65 Upgrade to version 2.0.20230219 2023-06-16 11:14:21 +08:00
openeuler-ci-bot
14b38251e6
!24 fix CVE-2021-33641 and CVE-2021-33642
From: @zhoupengcheng11 
Reviewed-by: @lyn1001 
Signed-off-by: @lyn1001
2023-01-06 09:08:54 +00:00
ZhouPengcheng
d44e41004f fix CVE-2021-33641 and CVE-2021-33642 2023-01-06 15:56:05 +08:00
openeuler-ci-bot
bd86106552
!16 byacc: modify changelog error
From: @chenmaodong 
Reviewed-by: @Charlie_li 
Signed-off-by: @Charlie_li
2022-12-24 03:40:40 +00:00
chenmaodong
76b8dff63b byacc: modify changelog error
Signed-off-by: chenmaodong <chenmaodong@xfusion.com>
2022-12-24 10:45:34 +08:00
openeuler-ci-bot
38d6ce4aff
!15 [sync] PR-13: Modify invalid Source
From: @openeuler-sync-bot 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
2022-11-22 03:20:48 +00:00
starlet-dx
d492ffc6db Modify invalid Source
(cherry picked from commit 421ff77327f802e36e227450518fcc58a5d919f3)
2022-11-21 18:20:28 +08:00
openeuler-ci-bot
a35a20d3ad
!12 enable check test suite
From: @wangjiang37 
Reviewed-by: @xiezhipeng1, @licihua 
Signed-off-by: @xiezhipeng1, @licihua
2022-08-29 03:50:16 +00:00
wangjiang
6aa3855435 enable check test suite 2022-06-29 10:46:12 +08:00
5 changed files with 123 additions and 6 deletions

55
CVE-2021-33641.patch Normal file
View File

@ -0,0 +1,55 @@
From 162549f599c4460bcefc1526cfa014fec626ebc5 Mon Sep 17 00:00:00 2001
From: zhoupengcheng <zhoupengcheng11@huawei.com>
Date: Sat, 26 Nov 2022 18:27:48 +0800
Subject: [PATCH] fix CVE-2021-33641
the global variable:cptr use-after-free in more_curly(),
save original line in more_curly() in case get new line to fix
CVE-2021-33641.
---
reader.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/reader.c b/reader.c
index 37dc2cb..2a1dfe5 100644
--- a/reader.c
+++ b/reader.c
@@ -1027,9 +1027,16 @@ trim_blanks(char *buffer)
static int
more_curly(void)
{
- char *save = cptr;
+
int result = 0;
int finish = 0;
+ FILE *f = input_file;
+ long int old_pos = ftell(f);
+ int save_linesize = linesize;
+ char *save_line = TMALLOC(char, linesize);
+ NO_SPACE(save_line);
+ char *save_cptr = save_line + (cptr - line);
+ memcpy(save_line, line, linesize);
do
{
switch (next_inline())
@@ -1046,7 +1053,15 @@ more_curly(void)
++cptr;
}
while (!finish);
- cptr = save;
+
+ // in case of next_inline malloc new line space
+ free(line);
+ cptr = save_cptr;
+ line = save_line;
+ linesize = save_linesize;
+ // Since get_line also move the postion in file forward
+ // we need to move it back
+ fseek(f, old_pos, SEEK_SET);
return result;
}
--
2.27.0

44
CVE-2021-33642.patch Normal file
View File

@ -0,0 +1,44 @@
From ab5ee87cbbe1b94a45d5c7974b321e2ee78d1238 Mon Sep 17 00:00:00 2001
From: zhoupengcheng <zhoupengcheng11@huawei.com>
Date: Sat, 26 Nov 2022 18:27:48 +0800
Subject: [PATCH] fix CVE-2021-33642
next_inline() return EOF cause infinite loop in more_curly(),
Add EOF case in more_curly(), don't allow multiple line.
---
reader.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/reader.c b/reader.c
index 2a1dfe5..6a9bb7c 100644
--- a/reader.c
+++ b/reader.c
@@ -1030,8 +1030,10 @@ more_curly(void)
int result = 0;
int finish = 0;
+ int c;
FILE *f = input_file;
long int old_pos = ftell(f);
+ long int new_pos = old_pos;
int save_linesize = linesize;
char *save_line = TMALLOC(char, linesize);
NO_SPACE(save_line);
@@ -1039,7 +1041,13 @@ more_curly(void)
memcpy(save_line, line, linesize);
do
{
- switch (next_inline())
+ c = next_inline();
+ // Don't allow multiple line, so we use file position to check
+ // Only get_line() will move file postion forward
+ new_pos = ftell(f);
+ if (c == (EOF) || old_pos != new_pos)
+ break;
+ switch (c)
{
case 0:
case '\n':
--
2.27.0

Binary file not shown.

BIN
byacc-20230219.tgz Normal file

Binary file not shown.

View File

@ -1,4 +1,4 @@
%define byaccdate 20210808
%define byaccdate 20230219
Name: byacc
Version: 2.0.%{byaccdate}
@ -6,7 +6,10 @@ Release: 1
Summary: A parser generator
License: public domain
URL: https://invisible-island.net/byacc/byacc.html
Source0: https://invisible-island.net/datafiles/release/byacc-%{byaccdate}.tgz
Source0: https://invisible-mirror.net/archives/byacc/byacc-%{byaccdate}.tgz
Patch9000: CVE-2021-33641.patch
Patch9001: CVE-2021-33642.patch
BuildRequires: gcc
@ -20,7 +23,7 @@ rejected.
%package_help
%prep
%autosetup -n byacc-20210808 -p1
%autosetup -n byacc-%{byaccdate} -p1
find . -type f -name \*.c -print0 | xargs -0 sed -i 's/YYSTACKSIZE 500/YYSTACKSIZE 10000/g'
%build
@ -33,10 +36,10 @@ ln -s yacc %{buildroot}%{_bindir}/byacc
ln -s yacc.1 %{buildroot}%{_mandir}/man1/byacc.1
%check
#make check
%make_build check
%files
%doc ACKNOWLEDGEMENTS README* NO_WARRANTY
%doc ACKNOWLEDGEMENTS NEW_FEATURES NO_WARRANTY README
%license AUTHORS
%{_bindir}/*
@ -45,13 +48,28 @@ ln -s yacc.1 %{buildroot}%{_mandir}/man1/byacc.1
%{_mandir}/man1/*
%changelog
* Fri Jun 16 2023 chenchen <chen_aka_jan@163.com> - 2.0.20230219-1
- Upgrade to version 2.0.20230219
* Mon Dec 26 2022 zhoupengcheng <zhoupengcheng11@huawei.com> - 2.0.20210808-5
- fix CVE-2021-33641 and CVE-2021-33642
* Sat Dec 24 2022 chenmaodong <chenmaodong@xfusion.com> - 2.0.20210808-4
- Modify changelog error
* Mon Nov 21 2022 yaoxin <yaoxin30@h-partners.com> - 2.0.20210808-3
- Modify invalid Source
* Wed Jun 29 2022 wangjiang <wangjiang37@h-partners.com> - 2.0.20210808-2
- DESC:enable check test suite
* Sat Dec 25 2021 tianwei<tianwei12@huawei.com> - 2.0.20210808
- DESC:upgrade to 2.0.20210808
* Mon Feb 1 2021 wangjie<wangjie294@huawei.com> - 2.0.20210109
- DESC:upgrade 2.0.20210109
* Sta Jul 25 2020 xinghe <xinghe1@huawei.com> - 1.9.20200330-1
* Sat Jul 25 2020 xinghe <xinghe1@huawei.com> - 1.9.20200330-1
- update version to 1.9.20200330
* Wed Jan 22 2020 gulining<gulining1@huawei.com> - 1.9.20170709-9