aboutsummaryrefslogtreecommitdiff
path: root/sway/commands
diff options
context:
space:
mode:
authorAntonin Décimo <antonin.decimo@gmail.com>2020-06-04 13:47:57 +0200
committerTudor Brindus <me@tbrindus.ca>2020-07-30 22:02:42 -0400
commit2960b2c9b6c77d42f2696c1997bda965594e5dd4 (patch)
treea632604bbd3ba626d086fd88613d646354d21dae /sway/commands
parent8033b575f7f83203371343457c102233b17cfd77 (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`.
Diffstat (limited to 'sway/commands')
-rw-r--r--sway/commands/bar/colors.c5
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]);
}