diff --git a/backport-CVE-2021-27135.patch b/backport-CVE-2021-27135.patch new file mode 100644 index 0000000..811d559 --- /dev/null +++ b/backport-CVE-2021-27135.patch @@ -0,0 +1,52 @@ +From 82ba55b8f994ab30ff561a347b82ea340ba7075c Mon Sep 17 00:00:00 2001 +From: "Thomas E. Dickey" +Date: Tue, 9 Feb 2021 23:04:41 +0000 +Subject: [PATCH] snapshot of project "xterm", label xterm-365d + +--- a/button.c ++++ b/button.c +@@ -4323,6 +4323,7 @@ SaltTextAway(XtermWidget xw, + int i; + int eol; + int need = 0; ++ size_t have = 0; + Char *line; + Char *lp; + CELL first = *cellc; +@@ -4357,7 +4358,11 @@ SaltTextAway(XtermWidget xw, + + /* UTF-8 may require more space */ + if_OPT_WIDE_CHARS(screen, { +- need *= 4; ++ if (need > 0) { ++ if (screen->max_combining > 0) ++ need += screen->max_combining; ++ need *= 6; ++ } + }); + + /* now get some memory to save it in */ +@@ -4395,10 +4400,20 @@ SaltTextAway(XtermWidget xw, + } + *lp = '\0'; /* make sure we have end marked */ + +- TRACE(("Salted TEXT:%u:%s\n", (unsigned) (lp - line), +- visibleChars(line, (unsigned) (lp - line)))); ++ have = (size_t) (lp - line); ++ /* ++ * Scanning the buffer twice is unnecessary. Discard unwanted memory if ++ * the estimate is too-far off. ++ */ ++ if ((have * 2) < (size_t) need) { ++ scp->data_limit = have + 1; ++ line = realloc(line, scp->data_limit); ++ } ++ ++ TRACE(("Salted TEXT:%u:%s\n", (unsigned) have, ++ visibleChars(line, (unsigned) have))); + +- scp->data_length = (size_t) (lp - line); ++ scp->data_length = have; + } + + #if OPT_PASTE64 diff --git a/xterm.spec b/xterm.spec index 3f2dc64..7c638b7 100644 --- a/xterm.spec +++ b/xterm.spec @@ -1,11 +1,13 @@ Name: xterm Version: 363 -Release: 1 +Release: 2 Summary: It is a terminal emulator for the X Window System License: MIT URL: http://invisible-island.net/xterm Source0: https://invisible-mirror.net/archives/xterm/xterm-%{version}.tgz +Patch6000: backport-CVE-2021-27135.patch + BuildRequires: gcc git pkgconfig ncurses-devel libutempter-devel BuildRequires: libXft-devel libXaw-devel libXext-devel desktop-file-utils BuildRequires: libxkbfile-devel xorg-x11-apps @@ -62,6 +64,9 @@ install -m 644 -p xterm.appdata.xml %{buildroot}/%{_datadir}/appdata %{_mandir}/man1/* %changelog +* Wed Mar 03 2021 jinzhimin - 363-2 +- fix CVE-2021-27135 + * Thu Jan 28 2021 jinzhimin - 363-1 - Upgrade to 363