From 4cc9e9af87ec97308176a694e7b408820108e9ed Mon Sep 17 00:00:00 2001 From: Shahab Vahedi Date: Tue, 1 Dec 2020 13:04:15 +0100 Subject: [PATCH] expect 5.45.4_3: Fix the buffer overlow while logging There is a buffer overflow issue with "expect" when you run it with "--debug" flag and the expected string is too big [1]. This patch was already proposed 7 years ago [2] but never found its away upstream. Other distros also fix it locally [3]. It's time we have it fixed in Void Linux as well. [1] Bug 26986 - *** buffer overflow detected ***: expect terminated https://sourceware.org/bugzilla/show_bug.cgi?id=26986 [2] Expect / Bugs / #95 buffer overflow in exp_log.c https://sourceforge.net/p/expect/bugs/95/ [3] fedora fixing the overflow in expect https://src.fedoraproject.org/rpms/expect/blob/master/f/expect-5.45-exp-log-buf-overflow.patch --- ...005-fix-buffer-overflow-when-logging.patch | 22 +++++++++++++++++++ srcpkgs/expect/template | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/expect/patches/0005-fix-buffer-overflow-when-logging.patch diff --git a/srcpkgs/expect/patches/0005-fix-buffer-overflow-when-logging.patch b/srcpkgs/expect/patches/0005-fix-buffer-overflow-when-logging.patch new file mode 100644 index 00000000000..cc69ab474de --- /dev/null +++ b/srcpkgs/expect/patches/0005-fix-buffer-overflow-when-logging.patch @@ -0,0 +1,22 @@ +*** exp_log.c 2020-12-01 12:09:21.839702061 +0100 +--- exp_log.c.patched 2020-12-01 12:09:43.075701160 +0100 +*************** expStdoutLog TCL_VARARGS_DEF(int,arg1) +*** 179 **** +! (void) vsprintf(bigbuf,fmt,args); +--- 179 ---- +! (void) vsnprintf(bigbuf,sizeof(bigbuf),fmt,args); +*************** expErrorLog TCL_VARARGS_DEF(char *,arg1) +*** 225 **** +! (void) vsprintf(bigbuf,fmt,args); +--- 225 ---- +! (void) vsnprintf(bigbuf,sizeof(bigbuf),fmt,args); +*************** expDiagLog TCL_VARARGS_DEF(char *,arg1) +*** 267 **** +! (void) vsprintf(bigbuf,fmt,args); +--- 267 ---- +! (void) vsnprintf(bigbuf,sizeof(bigbuf),fmt,args); +*************** expPrintf TCL_VARARGS_DEF(char *,arg1) +*** 310 **** +! len = vsprintf(bigbuf,arg1,args); +--- 310 ---- +! len = vsnprintf(bigbuf,sizeof(bigbuf),arg1,args); diff --git a/srcpkgs/expect/template b/srcpkgs/expect/template index 664f91cdb40..2d0bdbd4e44 100644 --- a/srcpkgs/expect/template +++ b/srcpkgs/expect/template @@ -1,7 +1,7 @@ # Template file for 'expect' pkgname=expect version=5.45.4 -revision=2 +revision=3 wrksrc=${pkgname}${version} build_style=gnu-configure configure_args="expect_cv_wnohang_value=1"