aboutsummaryrefslogtreecommitdiffstats
path: root/main/screen/CVE-2015-6806.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/screen/CVE-2015-6806.patch')
-rw-r--r--main/screen/CVE-2015-6806.patch52
1 files changed, 0 insertions, 52 deletions
diff --git a/main/screen/CVE-2015-6806.patch b/main/screen/CVE-2015-6806.patch
deleted file mode 100644
index 24a013b8eb..0000000000
--- a/main/screen/CVE-2015-6806.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Origin: commit b7484c224738247b510ed0d268cd577076958f1b
-Author: Kuang-che Wu <kcwu@csie.org>
-Bug: https://savannah.gnu.org/bugs/?45713
-Bug-Debian: http://bugs.debian.org/797624
-Description: Fix stack overflow due to too deep recursion
- How to reproduce:
- Run this command inside screen
- $ printf '\x1b[10000000T'
- .
- screen will recursively call MScrollV to depth n/256.
- This is time consuming and will overflow stack if n is huge.
-
-diff --git a/ansi.c b/ansi.c
-index a342fb1..152d2ef 100644
---- a/ansi.c
-+++ b/ansi.c
-@@ -2502,13 +2502,13 @@ int n, ys, ye, bce;
- return;
- if (n > 0)
- {
-+ if (ye - ys + 1 < n)
-+ n = ye - ys + 1;
- if (n > 256)
- {
- MScrollV(p, n - 256, ys, ye, bce);
- n = 256;
- }
-- if (ye - ys + 1 < n)
-- n = ye - ys + 1;
- #ifdef COPY_PASTE
- if (compacthist)
- {
-@@ -2562,14 +2562,14 @@ int n, ys, ye, bce;
- }
- else
- {
-- if (n < -256)
-- {
-- MScrollV(p, n + 256, ys, ye, bce);
-- n = -256;
-- }
- n = -n;
- if (ye - ys + 1 < n)
- n = ye - ys + 1;
-+ if (n > 256)
-+ {
-+ MScrollV(p, - (n - 256), ys, ye, bce);
-+ n = 256;
-+ }
-
- ml = p->w_mlines + ye;
- /* Clear lines */