diff options
author | Antonin Décimo <antonin.decimo@gmail.com> | 2020-06-04 13:47:57 +0200 |
---|---|---|
committer | Tudor Brindus <me@tbrindus.ca> | 2020-07-30 22:02:42 -0400 |
commit | 2960b2c9b6c77d42f2696c1997bda965594e5dd4 (patch) | |
tree | a632604bbd3ba626d086fd88613d646354d21dae | |
parent | 8033b575f7f83203371343457c102233b17cfd77 (diff) |
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`.
-rw-r--r-- | sway/commands/bar/colors.c | 5 |
1 files changed, 4 insertions, 1 deletions
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]); } |