GUACAMOLE-278: Ignore 256-color SGR sequences which contain out-of-range values.
This commit is contained in:
parent
19f7424c62
commit
e4ce7b0eeb
@ -461,10 +461,21 @@ static int guac_terminal_parse_xterm256_rgb(int argc, const int* argv,
|
|||||||
if (argc < 3)
|
if (argc < 3)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
/* Read RGB components from arguments */
|
||||||
|
int red = argv[0];
|
||||||
|
int green = argv[1];
|
||||||
|
int blue = argv[2];
|
||||||
|
|
||||||
|
/* Ignore if components are out of range */
|
||||||
|
if ( red < 0 || red > 255
|
||||||
|
|| green < 0 || green > 255
|
||||||
|
|| blue < 0 || blue > 255)
|
||||||
|
return 3;
|
||||||
|
|
||||||
/* Store RGB components */
|
/* Store RGB components */
|
||||||
color->red = (uint8_t) argv[0];
|
color->red = (uint8_t) red;
|
||||||
color->green = (uint8_t) argv[1];
|
color->green = (uint8_t) green;
|
||||||
color->blue = (uint8_t) argv[2];
|
color->blue = (uint8_t) blue;
|
||||||
|
|
||||||
/* Color is not from the palette */
|
/* Color is not from the palette */
|
||||||
color->palette_index = -1;
|
color->palette_index = -1;
|
||||||
@ -491,7 +502,7 @@ static int guac_terminal_parse_xterm256_rgb(int argc, const int* argv,
|
|||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
* The number of arguments parsed, or zero if the palette index is
|
* The number of arguments parsed, or zero if the palette index is
|
||||||
* out of range or absent.
|
* absent.
|
||||||
*/
|
*/
|
||||||
static int guac_terminal_parse_xterm256_index(int argc, const int* argv,
|
static int guac_terminal_parse_xterm256_index(int argc, const int* argv,
|
||||||
guac_terminal_color* color) {
|
guac_terminal_color* color) {
|
||||||
@ -500,10 +511,10 @@ static int guac_terminal_parse_xterm256_index(int argc, const int* argv,
|
|||||||
if (argc < 1)
|
if (argc < 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Verify palette index bounds */
|
/* Ignore if palette index is out of bounds */
|
||||||
int index = argv[0];
|
int index = argv[0];
|
||||||
if (index < 0 || index > 255)
|
if (index < 0 || index > 255)
|
||||||
return 0;
|
return 1;
|
||||||
|
|
||||||
/* Copy palette entry */
|
/* Copy palette entry */
|
||||||
*color = guac_terminal_palette[index];
|
*color = guac_terminal_palette[index];
|
||||||
|
Loading…
Reference in New Issue
Block a user