aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2019-05-20 07:02:36 +0100
committerThomas Adam <thomas@xteddy.org>2019-05-20 07:02:36 +0100
commitc271cb9ff8282f6babda1f2aae13d31fd62cb89e (patch)
treefe2ca73310595a6cadd001c25884c357f8d12b92
parent56246c29364f25b89de32e73dd8a527b83d2806a (diff)
parent6e0c663a895fc4d24b9745675cd45f3d8b457680 (diff)
downloadrtmux-c271cb9ff8282f6babda1f2aae13d31fd62cb89e.tar.gz
rtmux-c271cb9ff8282f6babda1f2aae13d31fd62cb89e.tar.bz2
rtmux-c271cb9ff8282f6babda1f2aae13d31fd62cb89e.zip
Merge branch 'obsd-master'
-rw-r--r--input.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/input.c b/input.c
index a9f0acc9..4095c05d 100644
--- a/input.c
+++ b/input.c
@@ -1938,23 +1938,25 @@ input_csi_dispatch_sgr_colon(struct input_ctx *ictx, u_int i)
}
return;
}
- if (p[0] != 38 && p[0] != 48)
+ if (n < 2 || (p[0] != 38 && p[0] != 48))
return;
- if (p[1] == -1)
- i = 2;
- else
- i = 1;
- switch (p[i]) {
+ switch (p[1]) {
case 2:
- if (n < i + 4)
+ if (n < 3)
+ break;
+ if (n == 5)
+ i = 2;
+ else
+ i = 3;
+ if (n < i + 3)
break;
- input_csi_dispatch_sgr_rgb_do(ictx, p[0], p[i + 1], p[i + 2],
- p[i + 3]);
+ input_csi_dispatch_sgr_rgb_do(ictx, p[0], p[i], p[i + 1],
+ p[i + 2]);
break;
case 5:
- if (n < i + 2)
+ if (n < 3)
break;
- input_csi_dispatch_sgr_256_do(ictx, p[0], p[i + 1]);
+ input_csi_dispatch_sgr_256_do(ictx, p[0], p[2]);
break;
}
}