From: Tony Crisci Date: Wed, 12 Jul 2017 21:50:19 +0000 (-0400) Subject: libi3: Add basic validation to hex color conversion X-Git-Tag: 4.14~18^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=refs%2Fpull%2F2838%2Fhead;p=i3%2Fi3 libi3: Add basic validation to hex color conversion Make sure a given hex color is the expected length and begins with a hash in draw_util_hex_to_color() to avoid memory errors. fixes #2829 --- diff --git a/libi3/draw_util.c b/libi3/draw_util.c index e4f0d065..6a2e93dc 100644 --- a/libi3/draw_util.c +++ b/libi3/draw_util.c @@ -84,6 +84,11 @@ void draw_util_surface_set_size(surface_t *surface, int width, int height) { * */ color_t draw_util_hex_to_color(const char *color) { + if (strlen(color) < 6 || color[0] != '#') { + ELOG("Could not parse color: %s\n", color); + return draw_util_hex_to_color("#A9A9A9"); + } + char alpha[2]; if (strlen(color) == strlen("#rrggbbaa")) { alpha[0] = color[7];