From: Michael Olbrich <m.olbrich@pengutronix.de>
To: Christian Melki <christian.melki@t2data.com>
Cc: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] screen: Version bump 4.5.0 -> 4.8.0
Date: Thu, 6 Jan 2022 11:55:35 +0100 [thread overview]
Message-ID: <YdbKpzP8GArn7K6J@pengutronix.de> (raw)
In-Reply-To: <20211222130304.2549154-18-christian.melki@t2data.com>
On Wed, Dec 22, 2021 at 02:02:59PM +0100, Christian Melki wrote:
> Package maintenance.
> Fixes CVE-2021-26937, CVE-2020-9366, CVE-2017-5618
There are several old patches. Some are cross-compile fixes, others are
imported from Debian. I think some of them solve the same problem as your
patches. Where are yours from?
This whole thing needs some cleanup. I think you can ignore the Debian
patches. I can sort that out afterwards.
Also, if configure.ac is modified, then a autogen.sh link is needed.
Michael
> Signed-off-by: Christian Melki <christian.melki@t2data.com>
> ---
> .../0001-no-memcpy-fallback.patch | 126 ++++++++++++++++
> .../0002-install-no-backup-binary.patch | 41 +++++
> .../0003-install-always-chmod.patch | 29 ++++
> .../0004-install-nonversioned-binary.patch | 31 ++++
> .../screen-4.8.0/0005-rename-sched_h.patch | 142 ++++++++++++++++++
> .../0006-comm-h-now-depends-on-term-h.patch | 28 ++++
> ...-needed-for-list_-display-generic-.o.patch | 35 +++++
> .../screen-4.8.0/0008-CVE-2021-26937.patch | 68 +++++++++
> patches/screen-4.8.0/series | 9 ++
> rules/screen.make | 4 +-
> 10 files changed, 511 insertions(+), 2 deletions(-)
> create mode 100644 patches/screen-4.8.0/0001-no-memcpy-fallback.patch
> create mode 100644 patches/screen-4.8.0/0002-install-no-backup-binary.patch
> create mode 100644 patches/screen-4.8.0/0003-install-always-chmod.patch
> create mode 100644 patches/screen-4.8.0/0004-install-nonversioned-binary.patch
> create mode 100644 patches/screen-4.8.0/0005-rename-sched_h.patch
> create mode 100644 patches/screen-4.8.0/0006-comm-h-now-depends-on-term-h.patch
> create mode 100644 patches/screen-4.8.0/0007-comm.h-needed-for-list_-display-generic-.o.patch
> create mode 100644 patches/screen-4.8.0/0008-CVE-2021-26937.patch
> create mode 100644 patches/screen-4.8.0/series
>
> diff --git a/patches/screen-4.8.0/0001-no-memcpy-fallback.patch b/patches/screen-4.8.0/0001-no-memcpy-fallback.patch
> new file mode 100644
> index 000000000..213790719
> --- /dev/null
> +++ b/patches/screen-4.8.0/0001-no-memcpy-fallback.patch
> @@ -0,0 +1,126 @@
> +From: Maarten ter Huurne <maarten@treewalker.org>
> +Date: Sat, 13 Sep 2014 11:37:59 +0200
> +Subject: Do not use memcpy as an alternative for bcopy/memmove
> +
> +The configure script runs a small test program to check whether
> +memcpy can handle overlapping memory areas. However, it is not valid
> +to conclude that if a single case of overlapping memory is handled
> +correctly, all cases will be handled correctly.
> +
> +Since screen already has its own bcopy implementation as a fallback
> +for the case that bcopy and memmove are unusable, removing the memcpy
> +option should not break any systems.
> +
> +Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
> +[Ricardo: rebase on top of 4.3.1]
> +Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> +[Bernd: rebase on top of 4.7.0]
> +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> +---
> + acconfig.h | 3 +--
> + configure.ac | 18 +-----------------
> + os.h | 8 ++------
> + osdef.h.in | 10 +---------
> + 4 files changed, 5 insertions(+), 34 deletions(-)
> +
> +diff --git a/acconfig.h b/acconfig.h
> +index 2e46985..9b0b9d4 100644
> +--- a/acconfig.h
> ++++ b/acconfig.h
> +@@ -476,7 +476,7 @@
> + #undef GETTTYENT
> +
> + /*
> +- * Define USEBCOPY if the bcopy/memcpy from your system's C library
> ++ * Define USEBCOPY if the bcopy from your system's C library
> + * supports the overlapping of source and destination blocks. When
> + * undefined, screen uses its own (probably slower) version of bcopy().
> + *
> +@@ -487,7 +487,6 @@
> + * Their memove fails the test in the configure script. Sigh. (Juergen)
> + */
> + #undef USEBCOPY
> +-#undef USEMEMCPY
> + #undef USEMEMMOVE
> +
> + /*
> +diff --git a/configure.ac b/configure.ac
> +index 27690a6..b8e3bec 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -1145,7 +1145,7 @@ AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
> + AC_CHECKING(fdwalk)
> + AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
> +
> +-AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
> ++AC_CHECKING(whether memmove/bcopy handles overlapping arguments)
> + AC_TRY_RUN([
> + main() {
> + char buf[10];
> +@@ -1175,22 +1175,6 @@ main() {
> + exit(0); /* libc version works properly. */
> + }], AC_DEFINE(USEMEMMOVE))
> +
> +-
> +-AC_TRY_RUN([
> +-#define bcopy(s,d,l) memcpy(d,s,l)
> +-main() {
> +- char buf[10];
> +- strcpy(buf, "abcdefghi");
> +- bcopy(buf, buf + 2, 3);
> +- if (strncmp(buf, "ababcf", 6))
> +- exit(1);
> +- strcpy(buf, "abcdefghi");
> +- bcopy(buf + 2, buf, 3);
> +- if (strncmp(buf, "cdedef", 6))
> +- exit(1);
> +- exit(0); /* libc version works properly. */
> +-}], AC_DEFINE(USEMEMCPY),,:)
> +-
> + AC_SYS_LONG_FILE_NAMES
> +
> + AC_MSG_CHECKING(for vsprintf)
> +diff --git a/os.h b/os.h
> +index e827ac9..0b41fb9 100644
> +--- a/os.h
> ++++ b/os.h
> +@@ -142,12 +142,8 @@ extern int errno;
> + # ifdef USEMEMMOVE
> + # define bcopy(s,d,len) memmove(d,s,len)
> + # else
> +-# ifdef USEMEMCPY
> +-# define bcopy(s,d,len) memcpy(d,s,len)
> +-# else
> +-# define NEED_OWN_BCOPY
> +-# define bcopy xbcopy
> +-# endif
> ++# define NEED_OWN_BCOPY
> ++# define bcopy xbcopy
> + # endif
> + #endif
> +
> +diff --git a/osdef.h.in b/osdef.h.in
> +index 8687b60..e4057a0 100644
> +--- a/osdef.h.in
> ++++ b/osdef.h.in
> +@@ -58,16 +58,8 @@ extern int bcmp __P((char *, char *, int));
> + extern int killpg __P((int, int));
> + #endif
> +
> +-#ifndef USEBCOPY
> +-# ifdef USEMEMCPY
> +-extern void memcpy __P((char *, char *, int));
> +-# else
> +-# ifdef USEMEMMOVE
> ++#if defined(USEMEMMOVE) && !defined(USEBCOPY)
> + extern void memmove __P((char *, char *, int));
> +-# else
> +-extern void bcopy __P((char *, char *, int));
> +-# endif
> +-# endif
> + #else
> + extern void bcopy __P((char *, char *, int));
> + #endif
> +--
> +1.8.4.5
> +
> diff --git a/patches/screen-4.8.0/0002-install-no-backup-binary.patch b/patches/screen-4.8.0/0002-install-no-backup-binary.patch
> new file mode 100644
> index 000000000..7842662b5
> --- /dev/null
> +++ b/patches/screen-4.8.0/0002-install-no-backup-binary.patch
> @@ -0,0 +1,41 @@
> +From: Maarten ter Huurne <maarten@treewalker.org>
> +Date: Sun, 14 Sep 2014 23:58:34 +0200
> +Subject: Do not create backup of old installed binary
> +
> +This is a rather unusual feature that packagers will not expect.
> +
> +Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
> +[baruch: update for 4.6.2]
> +Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> +---
> + Makefile.in | 4 ----
> + 1 file changed, 4 deletions(-)
> +
> +diff --git a/Makefile.in b/Makefile.in
> +index 187a69b..65549e9 100644
> +--- a/Makefile.in
> ++++ b/Makefile.in
> +@@ -83,12 +83,9 @@ screen: $(OFILES)
> + $(OPTIONS) $(CFLAGS) $<
> +
> + install_bin: .version screen installdirs
> +- -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \
> +- then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi
> + $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
> + -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
> + # This doesn't work if $(bindir)/screen is a symlink
> +- -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi
> + rm -f $(DESTDIR)$(bindir)/screen
> + (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
> + cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
> +@@ -113,7 +110,6 @@ installdirs:
> + uninstall: .version
> + rm -f $(DESTDIR)$(bindir)/$(SCREEN)
> + rm -f $(DESTDIR)$(bindir)/screen
> +- -mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen
> + rm -f $(DESTDIR)$(ETCSCREENRC)
> + cd doc; $(MAKE) uninstall
> +
> +--
> +1.8.4.5
> +
> diff --git a/patches/screen-4.8.0/0003-install-always-chmod.patch b/patches/screen-4.8.0/0003-install-always-chmod.patch
> new file mode 100644
> index 000000000..0aa7690b0
> --- /dev/null
> +++ b/patches/screen-4.8.0/0003-install-always-chmod.patch
> @@ -0,0 +1,29 @@
> +From: Maarten ter Huurne <maarten@treewalker.org>
> +Date: Mon, 15 Sep 2014 00:03:05 +0200
> +Subject: Change binary permission flags even if chown fails
> +
> +Typically when creating a package, the build is not run as root, so
> +the chown will fail. But the chmod can still be done.
> +
> +Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
> +---
> + Makefile.in | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/Makefile.in b/Makefile.in
> +index 65549e9..3c12fdb 100644
> +--- a/Makefile.in
> ++++ b/Makefile.in
> +@@ -84,7 +84,8 @@ screen: $(OFILES)
> +
> + install_bin: .version screen
> + $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
> +- -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
> ++ -chown root $(DESTDIR)$(bindir)/$(SCREEN)
> ++ -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
> + # This doesn't work if $(bindir)/screen is a symlink
> + rm -f $(DESTDIR)$(bindir)/screen
> + (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
> +--
> +1.8.4.5
> +
> diff --git a/patches/screen-4.8.0/0004-install-nonversioned-binary.patch b/patches/screen-4.8.0/0004-install-nonversioned-binary.patch
> new file mode 100644
> index 000000000..ecbbd6519
> --- /dev/null
> +++ b/patches/screen-4.8.0/0004-install-nonversioned-binary.patch
> @@ -0,0 +1,31 @@
> +From: Maarten ter Huurne <maarten@treewalker.org>
> +Date: Mon, 15 Sep 2014 00:06:20 +0200
> +Subject: Support overriding SCREEN to get a non-versioned binary
> +
> +If a packager runs "make install SCREEN=screen", do not create
> +"screen" as a symlink to itself.
> +
> +Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
> +---
> + Makefile.in | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/Makefile.in b/Makefile.in
> +index 3c12fdb..860f351 100644
> +--- a/Makefile.in
> ++++ b/Makefile.in
> +@@ -86,9 +86,11 @@ install_bin: .version screen
> + $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
> + -chown root $(DESTDIR)$(bindir)/$(SCREEN)
> + -chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
> ++ifneq (${SCREEN},screen)
> + # This doesn't work if $(bindir)/screen is a symlink
> + rm -f $(DESTDIR)$(bindir)/screen
> + (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
> ++endif
> + cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
> +
> + ###############################################################################
> +--
> +1.8.4.5
> +
> diff --git a/patches/screen-4.8.0/0005-rename-sched_h.patch b/patches/screen-4.8.0/0005-rename-sched_h.patch
> new file mode 100644
> index 000000000..9b29b76e0
> --- /dev/null
> +++ b/patches/screen-4.8.0/0005-rename-sched_h.patch
> @@ -0,0 +1,142 @@
> +From: Maarten ter Huurne <maarten@treewalker.org>
> +Date: Mon, 15 Sep 2014 00:24:41 +0200
> +Subject: Renamed sched.h to eventqueue.h
> +
> +There is a <sched.h> system header that got shadowed by "sched.h".
> +While Screen itself doesn't include <sched.h>, other system headers
> +might include it indirectly. This broke the build when using uClibc
> +with pthread support.
> +
> +Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
> +---
> + eventqueue.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
> + sched.h | 48 ------------------------------------------------
> + screen.h | 2 +-
> + 3 files changed, 49 insertions(+), 49 deletions(-)
> + create mode 100644 eventqueue.h
> + delete mode 100644 sched.h
> +
> +diff --git a/eventqueue.h b/eventqueue.h
> +new file mode 100644
> +index 0000000..fdc3fc4
> +--- /dev/null
> ++++ b/eventqueue.h
> +@@ -0,0 +1,48 @@
> ++/* Copyright (c) 2008, 2009
> ++ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
> ++ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
> ++ * Micah Cowan (micah@cowan.name)
> ++ * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
> ++ * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007
> ++ * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
> ++ * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
> ++ * Copyright (c) 1987 Oliver Laumann
> ++ *
> ++ * This program is free software; you can redistribute it and/or modify
> ++ * it under the terms of the GNU General Public License as published by
> ++ * the Free Software Foundation; either version 3, or (at your option)
> ++ * any later version.
> ++ *
> ++ * This program is distributed in the hope that it will be useful,
> ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
> ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> ++ * GNU General Public License for more details.
> ++ *
> ++ * You should have received a copy of the GNU General Public License
> ++ * along with this program (see the file COPYING); if not, see
> ++ * https://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
> ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
> ++ *
> ++ ****************************************************************
> ++ * $Id$ GNU
> ++ */
> ++
> ++struct event
> ++{
> ++ struct event *next;
> ++ void (*handler) __P((struct event *, char *));
> ++ char *data;
> ++ int fd;
> ++ int type;
> ++ int pri;
> ++ struct timeval timeout;
> ++ int queued; /* in evs queue */
> ++ int active; /* in fdset */
> ++ int *condpos; /* only active if condpos - condneg > 0 */
> ++ int *condneg;
> ++};
> ++
> ++#define EV_TIMEOUT 0
> ++#define EV_READ 1
> ++#define EV_WRITE 2
> ++#define EV_ALWAYS 3
> +diff --git a/sched.h b/sched.h
> +deleted file mode 100644
> +index fdc3fc4..0000000
> +--- a/sched.h
> ++++ /dev/null
> +@@ -1,48 +0,0 @@
> +-/* Copyright (c) 2008, 2009
> +- * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
> +- * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
> +- * Micah Cowan (micah@cowan.name)
> +- * Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
> +- * Copyright (c) 1993-2002, 2003, 2005, 2006, 2007
> +- * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
> +- * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
> +- * Copyright (c) 1987 Oliver Laumann
> +- *
> +- * This program is free software; you can redistribute it and/or modify
> +- * it under the terms of the GNU General Public License as published by
> +- * the Free Software Foundation; either version 3, or (at your option)
> +- * any later version.
> +- *
> +- * This program is distributed in the hope that it will be useful,
> +- * but WITHOUT ANY WARRANTY; without even the implied warranty of
> +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +- * GNU General Public License for more details.
> +- *
> +- * You should have received a copy of the GNU General Public License
> +- * along with this program (see the file COPYING); if not, see
> +- * https://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
> +- * 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
> +- *
> +- ****************************************************************
> +- * $Id$ GNU
> +- */
> +-
> +-struct event
> +-{
> +- struct event *next;
> +- void (*handler) __P((struct event *, char *));
> +- char *data;
> +- int fd;
> +- int type;
> +- int pri;
> +- struct timeval timeout;
> +- int queued; /* in evs queue */
> +- int active; /* in fdset */
> +- int *condpos; /* only active if condpos - condneg > 0 */
> +- int *condneg;
> +-};
> +-
> +-#define EV_TIMEOUT 0
> +-#define EV_READ 1
> +-#define EV_WRITE 2
> +-#define EV_ALWAYS 3
> +diff --git a/screen.h b/screen.h
> +index 603ca3f..34238c8 100644
> +--- a/screen.h
> ++++ b/screen.h
> +@@ -43,7 +43,7 @@
> + #include "osdef.h"
> +
> + #include "ansi.h"
> +-#include "sched.h"
> ++#include "eventqueue.h"
> + #include "acls.h"
> + #include "comm.h"
> + #include "layer.h"
> +--
> +1.8.4.5
> +
> diff --git a/patches/screen-4.8.0/0006-comm-h-now-depends-on-term-h.patch b/patches/screen-4.8.0/0006-comm-h-now-depends-on-term-h.patch
> new file mode 100644
> index 000000000..6ff6f3da0
> --- /dev/null
> +++ b/patches/screen-4.8.0/0006-comm-h-now-depends-on-term-h.patch
> @@ -0,0 +1,28 @@
> +From 39c5f1c76f1fcef4b5958bf828a63f53426b6984 Mon Sep 17 00:00:00 2001
> +From: Mike Gerwitz <mike@mikegerwitz.com>
> +Date: Tue, 24 Dec 2013 22:16:31 -0500
> +Subject: comm.h now depends on term.h
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +[Patch retrieved and updated from:
> +http://git.savannah.gnu.org/cgit/screen.git/commit/?id=39c5f1c]
> +---
> + src/Makefile.in | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/Makefile.in b/Makefile.in
> +index e791e79..d4f7c0b 100644
> +--- a/Makefile.in
> ++++ b/Makefile.in
> +@@ -113,7 +113,7 @@ term.h: term.c term.sh
> +
> + kmapdef.c: term.h
> +
> +-comm.h: comm.c comm.sh config.h
> ++comm.h: comm.c comm.sh config.h term.h
> + AWK=$(AWK) CC="$(CC) $(CFLAGS)" srcdir=${srcdir} sh $(srcdir)/comm.sh
> +
> + docs:
> +--
> +cgit v1.0-41-gc330
> +
> diff --git a/patches/screen-4.8.0/0007-comm.h-needed-for-list_-display-generic-.o.patch b/patches/screen-4.8.0/0007-comm.h-needed-for-list_-display-generic-.o.patch
> new file mode 100644
> index 000000000..f406a1afa
> --- /dev/null
> +++ b/patches/screen-4.8.0/0007-comm.h-needed-for-list_-display-generic-.o.patch
> @@ -0,0 +1,35 @@
> +From b719314d201a3e9e1e57c65746a468c47bfc847f Mon Sep 17 00:00:00 2001
> +From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +Date: Wed, 3 Oct 2018 22:29:32 +0200
> +Subject: [PATCH] comm.h needed for list_{display,generic}.o
> +
> +comm.h is needed to build list_display.o and list_generic.o otherwise
> +parallel builds will sometimes fail
> +
> +Fixes:
> + - http://autobuild.buildroot.org/results/43105f14857dbe72d8878fc7b3db67f7bdca93cc
> + - http://autobuild.buildroot.org/results/47f4ecbec1355285633df287fc9c4e7cccde9378
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +[Upstream status: https://savannah.gnu.org/bugs/index.php?54776]
> +---
> + Makefile.in | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/Makefile.in b/Makefile.in
> +index af5938b..e6d5247 100644
> +--- a/Makefile.in
> ++++ b/Makefile.in
> +@@ -265,7 +265,7 @@ braille.h
> + viewport.o: layout.h viewport.h canvas.h viewport.c config.h screen.h os.h osdef.h ansi.h acls.h \
> + comm.h layer.h term.h image.h display.h window.h extern.h \
> + braille.h
> +-list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h
> +-list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h
> ++list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h comm.h
> ++list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h comm.h
> + list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h comm.h
> +
> +--
> +2.17.1
> +
> diff --git a/patches/screen-4.8.0/0008-CVE-2021-26937.patch b/patches/screen-4.8.0/0008-CVE-2021-26937.patch
> new file mode 100644
> index 000000000..df7efa029
> --- /dev/null
> +++ b/patches/screen-4.8.0/0008-CVE-2021-26937.patch
> @@ -0,0 +1,68 @@
> +Description: [CVE-2021-26937] Fix out of bounds array access
> +Author: Michael Schröder <mls@suse.de>
> +Bug-Debian: https://bugs.debian.org/982435
> +Bug: https://savannah.gnu.org/bugs/?60030
> +Bug: https://lists.gnu.org/archive/html/screen-devel/2021-02/msg00000.html
> +Bug-OSS-Security: https://www.openwall.com/lists/oss-security/2021/02/09/3
> +Origin: https://lists.gnu.org/archive/html/screen-devel/2021-02/msg00010.html
> +
> +Downloaded from Debian:
> +https://sources.debian.org/data/main/s/screen/4.8.0-5/debian/patches/99_CVE-2021-26937.patch
> +
> +Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
> +--- a/encoding.c
> ++++ b/encoding.c
> +@@ -43,7 +43,7 @@
> + # ifdef UTF8
> + static int recode_char __P((int, int, int));
> + static int recode_char_to_encoding __P((int, int));
> +-static void comb_tofront __P((int, int));
> ++static void comb_tofront __P((int));
> + # ifdef DW_CHARS
> + static int recode_char_dw __P((int, int *, int, int));
> + static int recode_char_dw_to_encoding __P((int, int *, int));
> +@@ -1263,6 +1263,8 @@
> + {0x30000, 0x3FFFD},
> + };
> +
> ++ if (c >= 0xdf00 && c <= 0xdfff)
> ++ return 1; /* dw combining sequence */
> + return ((bisearch(c, wide, sizeof(wide) / sizeof(struct interval) - 1)) ||
> + (cjkwidth &&
> + bisearch(c, ambiguous,
> +@@ -1330,11 +1332,12 @@
> + }
> +
> + static void
> +-comb_tofront(root, i)
> +-int root, i;
> ++comb_tofront(i)
> ++int i;
> + {
> + for (;;)
> + {
> ++ int root = i >= 0x700 ? 0x801 : 0x800;
> + debug1("bring to front: %x\n", i);
> + combchars[combchars[i]->prev]->next = combchars[i]->next;
> + combchars[combchars[i]->next]->prev = combchars[i]->prev;
> +@@ -1396,9 +1399,9 @@
> + {
> + /* full, recycle old entry */
> + if (c1 >= 0xd800 && c1 < 0xe000)
> +- comb_tofront(root, c1 - 0xd800);
> ++ comb_tofront(c1 - 0xd800);
> + i = combchars[root]->prev;
> +- if (c1 == i + 0xd800)
> ++ if (i == 0x800 || i == 0x801 || c1 == i + 0xd800)
> + {
> + /* completely full, can't recycle */
> + debug("utf8_handle_comp: completely full!\n");
> +@@ -1422,7 +1425,7 @@
> + mc->font = (i >> 8) + 0xd8;
> + mc->fontx = 0;
> + debug3("combinig char %x %x -> %x\n", c1, c, i + 0xd800);
> +- comb_tofront(root, i);
> ++ comb_tofront(i);
> + }
> +
> + #else /* !UTF8 */
> diff --git a/patches/screen-4.8.0/series b/patches/screen-4.8.0/series
> new file mode 100644
> index 000000000..c72b2fd5f
> --- /dev/null
> +++ b/patches/screen-4.8.0/series
> @@ -0,0 +1,9 @@
> +0001-no-memcpy-fallback.patch
> +0002-install-no-backup-binary.patch
> +0003-install-always-chmod.patch
> +0004-install-nonversioned-binary.patch
> +0005-rename-sched_h.patch
> +0006-comm-h-now-depends-on-term-h.patch
> +0007-comm.h-needed-for-list_-display-generic-.o.patch
> +0008-CVE-2021-26937.patch
> +
> diff --git a/rules/screen.make b/rules/screen.make
> index 39a96dae2..1087dfc9d 100644
> --- a/rules/screen.make
> +++ b/rules/screen.make
> @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SCREEN) += screen
> #
> # Paths and names
> #
> -SCREEN_VERSION := 4.5.0
> -SCREEN_MD5 := a32105a91359afab1a4349209a028e31
> +SCREEN_VERSION := 4.8.0
> +SCREEN_MD5 := d276213d3acd10339cd37848b8c4ab1e
> SCREEN := screen-$(SCREEN_VERSION)
> SCREEN_SUFFIX := tar.gz
> SCREEN_URL := $(call ptx/mirror, GNU, screen/$(SCREEN).$(SCREEN_SUFFIX))
> --
> 2.30.2
>
>
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
next prev parent reply other threads:[~2022-01-06 10:55 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-22 13:02 [ptxdist] [PATCH] bash: Version bump. 4.3.30 (+patches-33) -> 5.1.8 (patches-12) Christian Melki
2021-12-22 13:02 ` [ptxdist] [PATCH] bridge-utils: Version bump. 1.6 -> 1.7.1 Christian Melki
2022-01-21 7:18 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] curl: Version bump 7.77.0 -> 7.80.0 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] e2fsprogs: Version bump 1.46.2 -> 1.46.4 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] ethtool: Version bump. 5.13 -> 5.15 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] expat: Version bump 2.4.1 -> 2.4.2 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] host-libcap: BUILD_GPERF is reserved Christian Melki
2022-01-05 12:18 ` Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] iptables: Version bump 1.8.3 -> 1.8.7 Christian Melki
2022-01-06 7:10 ` Michael Olbrich
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] jimtcl: Verison bump 0.80 -> 0.81 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] libcap-ng: Version bump 0.7.10 -> 0.8.2 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] libcap: Version bump 2.51 -> 2.62 Christian Melki
2022-01-05 12:21 ` Michael Olbrich
2022-01-05 12:32 ` Christian Melki
2022-01-05 12:46 ` Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] libffi: Version bump 3.3 -> 3.4.2 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] libjpeg: Version bump 2.1.0 -> 2.1.2 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] libmbim: Version bump 1.24.2 -> 1.26.2 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] libseccomp: Version bump 2.5.1 -> 2.5.3 Christian Melki
2022-01-06 10:56 ` Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] libunwind: Version bump 1.5.0 -> 1.6.2 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] openssh: Version bump 8.6p1 -> 8.8p1 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:02 ` [ptxdist] [PATCH] screen: Version bump 4.5.0 -> 4.8.0 Christian Melki
2022-01-06 10:55 ` Michael Olbrich [this message]
2022-01-07 9:58 ` Christian Melki
2022-01-07 11:05 ` Michael Olbrich
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:03 ` [ptxdist] [PATCH] strace: Version bump 5.9 -> 5.15 Christian Melki
2022-01-05 12:53 ` Michael Olbrich
2021-12-22 13:03 ` [ptxdist] [PATCH] tcpdump: Version bump 4.93 -> 4.99.1 Christian Melki
2022-01-06 7:22 ` Michael Olbrich
2021-12-22 13:03 ` [ptxdist] [WIP: PATCH] usbutils: Version bump 007 -> 014 Christian Melki
2022-01-05 12:38 ` Michael Olbrich
2022-01-06 21:52 ` Christian Melki
2022-01-07 8:09 ` Michael Olbrich
2021-12-22 13:03 ` [ptxdist] [PATCH] util-linux-ng: Version bump 2.37 -> 2.37.2 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2021-12-22 13:03 ` [ptxdist] [PATCH] zstd: Version bump 1.5.0 -> 1.5.1 Christian Melki
2022-01-21 7:19 ` [ptxdist] [APPLIED] " Michael Olbrich
2022-01-05 13:00 ` [ptxdist] [PATCH] bash: Version bump. 4.3.30 (+patches-33) -> 5.1.8 (patches-12) Michael Olbrich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YdbKpzP8GArn7K6J@pengutronix.de \
--to=m.olbrich@pengutronix.de \
--cc=christian.melki@t2data.com \
--cc=ptxdist@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox