From 96baef8ae9955dd7ffd85c6b769a14df1f95bc97 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Thu, 21 Oct 2021 18:22:50 +0200 Subject: fix: use sane value for json_tokener max_depth INT_MAX causes a NULL pointer if there is not enough memory available to fit (INT_MAX * sizeof(struct json_tokener_srec)). --- swaymsg/main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/swaymsg/main.c b/swaymsg/main.c index 3698294a..dcf42cb6 100644 --- a/swaymsg/main.c +++ b/swaymsg/main.c @@ -1,4 +1,8 @@ #define _POSIX_C_SOURCE 200809L + +// arbitrary number, it's probably sufficient, higher number = more memory usage +#define JSON_MAX_DEPTH 512 + #include #include #include @@ -481,7 +485,7 @@ int main(int argc, char **argv) { char *resp = ipc_single_command(socketfd, type, command, &len); // pretty print the json - json_tokener *tok = json_tokener_new_ex(INT_MAX); + json_tokener *tok = json_tokener_new_ex(JSON_MAX_DEPTH); if (tok == NULL) { sway_log(SWAY_ERROR, "failed allocating json_tokener"); ret = 1; @@ -525,7 +529,7 @@ int main(int argc, char **argv) { break; } - json_tokener *tok = json_tokener_new_ex(INT_MAX); + json_tokener *tok = json_tokener_new_ex(JSON_MAX_DEPTH); if (tok == NULL) { sway_log(SWAY_ERROR, "failed allocating json_tokener"); ret = 1; -- cgit v1.2.3-54-g00ecf