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
This commit is contained in:
parent
1c06f8b797
commit
3a914396df
|
@ -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) {
|
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];
|
char alpha[2];
|
||||||
if (strlen(color) == strlen("#rrggbbaa")) {
|
if (strlen(color) == strlen("#rrggbbaa")) {
|
||||||
alpha[0] = color[7];
|
alpha[0] = color[7];
|
||||||
|
|
Loading…
Reference in New Issue