From 2960b2c9b6c77d42f2696c1997bda965594e5dd4 Mon Sep 17 00:00:00 2001 From: Antonin Décimo Date: Thu, 4 Jun 2020 13:47:57 +0200 Subject: cmd/bar/colors: fix dereference of null pointer `!*rgba` tests if the first byte of rgba isn't `'\0'`. `hex_to_rgba_hex` returns NULL if `parse_color` fails. There's a null pointer dereference in that case. The intended behavior is `!rgba`. --- sway/commands/bar/colors.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sway/commands/bar/colors.c') diff --git a/sway/commands/bar/colors.c b/sway/commands/bar/colors.c index ea2b912d..2d5b22bf 100644 --- a/sway/commands/bar/colors.c +++ b/sway/commands/bar/colors.c @@ -24,6 +24,9 @@ static char *hex_to_rgba_hex(const char *hex) { return NULL; } char *rgba = malloc(10); + if (!rgba) { + return NULL; + } snprintf(rgba, 10, "#%08x", color); return rgba; } @@ -36,7 +39,7 @@ static struct cmd_results *parse_single_color(char **color, } char *rgba = hex_to_rgba_hex(argv[0]); - if (!*rgba) { + if (!rgba) { return cmd_results_new(CMD_INVALID, "Invalid color: %s", argv[0]); } -- cgit v1.2.3-54-g00ecf