diff options
author | kraftwerk28 <kefirchik3@gmail.com> | 2022-06-15 18:50:57 +0300 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2022-06-16 09:32:44 +0200 |
commit | 49cef51e6e7fe31ba4f820560e0b69ebd2149d37 (patch) | |
tree | 361a2995cd48c2b879705a30024c76cebb857522 | |
parent | config/output: use wlr_output_commit_state (diff) | |
download | sway-49cef51e6e7fe31ba4f820560e0b69ebd2149d37.tar.gz sway-49cef51e6e7fe31ba4f820560e0b69ebd2149d37.tar.zst sway-49cef51e6e7fe31ba4f820560e0b69ebd2149d37.zip |
Allocate enough space for `cmd_results->error`
-rw-r--r-- | sway/commands.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sway/commands.c b/sway/commands.c index 0ced71ec..2160a970 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -485,13 +485,19 @@ struct cmd_results *cmd_results_new(enum cmd_status status, | |||
485 | } | 485 | } |
486 | results->status = status; | 486 | results->status = status; |
487 | if (format) { | 487 | if (format) { |
488 | char *error = malloc(256); | 488 | char *error = NULL; |
489 | va_list args; | 489 | va_list args; |
490 | va_start(args, format); | 490 | va_start(args, format); |
491 | if (error) { | 491 | int slen = vsnprintf(NULL, 0, format, args); |
492 | vsnprintf(error, 256, format, args); | ||
493 | } | ||
494 | va_end(args); | 492 | va_end(args); |
493 | if (slen > 0) { | ||
494 | error = malloc(slen + 1); | ||
495 | if (error != NULL) { | ||
496 | va_start(args, format); | ||
497 | vsnprintf(error, slen + 1, format, args); | ||
498 | va_end(args); | ||
499 | } | ||
500 | } | ||
495 | results->error = error; | 501 | results->error = error; |
496 | } else { | 502 | } else { |
497 | results->error = NULL; | 503 | results->error = NULL; |