From: Christian Melki <christian.melki@t2data.com>
To: ptxdist@pengutronix.de
Cc: m.olbrich@pengutronix.de
Subject: Re: [ptxdist] [PATCH] screen: Version bump 4.5.0 -> 4.8.0
Date: Fri, 7 Jan 2022 10:58:13 +0100 [thread overview]
Message-ID: <a583a2cd-8773-a8c6-b99c-7fedc23f7f57@t2data.com> (raw)
In-Reply-To: <YdbKpzP8GArn7K6J@pengutronix.de>
On 1/6/22 11:55 AM, Michael Olbrich wrote:
> 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
>
Patches are from Buildroot.
https://github.com/buildroot/buildroot/tree/master/package/screen
What do you need from me here? A new one with autogen.sh?
What do I do with the old patches?
>
>> 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
>
_______________________________________________
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-07 9:59 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
2022-01-07 9:58 ` Christian Melki [this message]
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=a583a2cd-8773-a8c6-b99c-7fedc23f7f57@t2data.com \
--to=christian.melki@t2data.com \
--cc=m.olbrich@pengutronix.de \
--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