diff options
author | Jason Nader <jason.nader@protonmail.com> | 2021-10-18 18:44:41 +0900 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-10-18 14:20:24 +0200 |
commit | 55cd8abd76cf6a31ca7edf67473c048f90f99140 (patch) | |
tree | f2e16f42d610c7c375bbd572c7d9c6eb95ce7fae /swaymsg/main.c | |
parent | swaymsg: use INT_MAX max JSON depth when parsing IPC response (diff) | |
download | sway-55cd8abd76cf6a31ca7edf67473c048f90f99140.tar.gz sway-55cd8abd76cf6a31ca7edf67473c048f90f99140.tar.zst sway-55cd8abd76cf6a31ca7edf67473c048f90f99140.zip |
swaymsg: be explicit about the json parser error
Diffstat (limited to 'swaymsg/main.c')
-rw-r--r-- | swaymsg/main.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/swaymsg/main.c b/swaymsg/main.c index ce5d7d71..c3468a16 100644 --- a/swaymsg/main.c +++ b/swaymsg/main.c | |||
@@ -483,12 +483,12 @@ int main(int argc, char **argv) { | |||
483 | // pretty print the json | 483 | // pretty print the json |
484 | json_tokener *tok = json_tokener_new_ex(INT_MAX); | 484 | json_tokener *tok = json_tokener_new_ex(INT_MAX); |
485 | json_object *obj = json_tokener_parse_ex(tok, resp, -1); | 485 | json_object *obj = json_tokener_parse_ex(tok, resp, -1); |
486 | enum json_tokener_error err = json_tokener_get_error(tok); | ||
486 | json_tokener_free(tok); | 487 | json_tokener_free(tok); |
487 | if (obj == NULL) { | 488 | if (obj == NULL || err != json_tokener_success) { |
488 | if (!quiet) { | 489 | if (!quiet) { |
489 | fprintf(stderr, "ERROR: Could not parse json response from ipc. " | 490 | sway_log(SWAY_ERROR, "failed to parse payload as json: %s", |
490 | "This is a bug in sway."); | 491 | json_tokener_error_desc(err)); |
491 | printf("%s\n", resp); | ||
492 | } | 492 | } |
493 | ret = 1; | 493 | ret = 1; |
494 | } else { | 494 | } else { |
@@ -522,11 +522,12 @@ int main(int argc, char **argv) { | |||
522 | 522 | ||
523 | json_tokener *tok = json_tokener_new_ex(INT_MAX); | 523 | json_tokener *tok = json_tokener_new_ex(INT_MAX); |
524 | json_object *obj = json_tokener_parse_ex(tok, reply->payload, -1); | 524 | json_object *obj = json_tokener_parse_ex(tok, reply->payload, -1); |
525 | enum json_tokener_error err = json_tokener_get_error(tok); | ||
525 | json_tokener_free(tok); | 526 | json_tokener_free(tok); |
526 | if (obj == NULL) { | 527 | if (obj == NULL || err != json_tokener_success) { |
527 | if (!quiet) { | 528 | if (!quiet) { |
528 | fprintf(stderr, "ERROR: Could not parse json response from" | 529 | sway_log(SWAY_ERROR, "failed to parse payload as json: %s", |
529 | " ipc. This is a bug in sway."); | 530 | json_tokener_error_desc(err)); |
530 | ret = 1; | 531 | ret = 1; |
531 | } | 532 | } |
532 | break; | 533 | break; |