diff options
author | William McKinnon <[email protected]> | 2022-04-27 17:33:23 -0400 |
---|---|---|
committer | William McKinnon <[email protected]> | 2022-04-27 17:33:23 -0400 |
commit | 7460d9f565092836f81b917a040caff57142d91a (patch) | |
tree | b76e7facef2aaa5925a62ad6b9995c16663313f0 /swaynag/config.c | |
parent | c37aba2736e31264bdcd52147a96fa85e17c8c5f (diff) |
merge sway master
Diffstat (limited to 'swaynag/config.c')
-rw-r--r-- | swaynag/config.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/swaynag/config.c b/swaynag/config.c index 6db7cce5..b212a0c3 100644 --- a/swaynag/config.c +++ b/swaynag/config.c @@ -19,6 +19,10 @@ static char *read_from_stdin(void) { ssize_t nread; while ((nread = getline(&line, &line_size, stdin)) != -1) { buffer = realloc(buffer, buffer_len + nread + 1); + if (!buffer) { + perror("realloc"); + return NULL; + } snprintf(&buffer[buffer_len], nread + 1, "%s", line); buffer_len += nread; } @@ -152,6 +156,10 @@ int swaynag_parse_options(int argc, char **argv, struct swaynag *swaynag, } struct swaynag_button *button; button = calloc(sizeof(struct swaynag_button), 1); + if (!button) { + perror("calloc"); + return EXIT_FAILURE; + } button->text = strdup(optarg); button->type = SWAYNAG_ACTION_COMMAND; button->action = strdup(argv[optind]); @@ -215,14 +223,17 @@ int swaynag_parse_options(int argc, char **argv, struct swaynag *swaynag, if (swaynag) { free(swaynag->details.message); swaynag->details.message = read_from_stdin(); + if (!swaynag->details.message) { + return EXIT_FAILURE; + } swaynag->details.button_up.text = strdup("▲"); swaynag->details.button_down.text = strdup("▼"); } break; case 'L': // Detailed Button Text if (swaynag) { - free(swaynag->details.button_details->text); - swaynag->details.button_details->text = strdup(optarg); + free(swaynag->details.button_details.text); + swaynag->details.button_details.text = strdup(optarg); } break; case 'm': // Message @@ -406,6 +417,10 @@ int swaynag_load_config(char *path, struct swaynag *swaynag, list_t *types) { break; } char *name = calloc(1, close - line); + if (!name) { + perror("calloc"); + return EXIT_FAILURE; + } strncat(name, line + 1, close - line - 1); type = swaynag_type_get(types, name); if (!type) { @@ -414,8 +429,12 @@ int swaynag_load_config(char *path, struct swaynag *swaynag, list_t *types) { } free(name); } else { - char *flag = malloc(sizeof(char) * (nread + 3)); - sprintf(flag, "--%s", line); + char *flag = malloc(nread + 3); + if (!flag) { + perror("calloc"); + return EXIT_FAILURE; + } + snprintf(flag, nread + 3, "--%s", line); char *argv[] = {"swaynag", flag}; result = swaynag_parse_options(2, argv, swaynag, types, type, NULL, NULL); |