diff options
author | Thomas Adam <thomas@xteddy.org> | 2019-05-20 07:02:36 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2019-05-20 07:02:36 +0100 |
commit | c271cb9ff8282f6babda1f2aae13d31fd62cb89e (patch) | |
tree | fe2ca73310595a6cadd001c25884c357f8d12b92 | |
parent | 56246c29364f25b89de32e73dd8a527b83d2806a (diff) | |
parent | 6e0c663a895fc4d24b9745675cd45f3d8b457680 (diff) | |
download | rtmux-c271cb9ff8282f6babda1f2aae13d31fd62cb89e.tar.gz rtmux-c271cb9ff8282f6babda1f2aae13d31fd62cb89e.tar.bz2 rtmux-c271cb9ff8282f6babda1f2aae13d31fd62cb89e.zip |
Merge branch 'obsd-master'
-rw-r--r-- | input.c | 24 |
1 files changed, 13 insertions, 11 deletions
@@ -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; } } |