diff options
author | Dominique Martinet <asmadeus@codewreck.org> | 2018-07-05 07:07:59 +0900 |
---|---|---|
committer | Dominique Martinet <asmadeus@codewreck.org> | 2018-07-05 13:11:02 +0900 |
commit | fe72e3b349f0905519481b77b22c525aca9c704d (patch) | |
tree | 3b63d204bf5b1fef09814d45786030c46a317b86 /sway/ipc-server.c | |
parent | workspace_next_name: free targets later than these already found in order (diff) | |
download | sway-fe72e3b349f0905519481b77b22c525aca9c704d.tar.gz sway-fe72e3b349f0905519481b77b22c525aca9c704d.tar.zst sway-fe72e3b349f0905519481b77b22c525aca9c704d.zip |
cmd_results_to_json: return copied string and properly free the json
The only user of this function would copy the string right away
to get rid of the const flag anyway, and freeing a const string
afterwards might work but is not meant to be done according to the
json-c API.
Diffstat (limited to 'sway/ipc-server.c')
-rw-r--r-- | sway/ipc-server.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sway/ipc-server.c b/sway/ipc-server.c index 01b80b05..96889b39 100644 --- a/sway/ipc-server.c +++ b/sway/ipc-server.c | |||
@@ -481,11 +481,10 @@ void ipc_client_handle_command(struct ipc_client *client) { | |||
481 | case IPC_COMMAND: | 481 | case IPC_COMMAND: |
482 | { | 482 | { |
483 | struct cmd_results *results = execute_command(buf, NULL); | 483 | struct cmd_results *results = execute_command(buf, NULL); |
484 | const char *json = cmd_results_to_json(results); | 484 | char *json = cmd_results_to_json(results); |
485 | char reply[256]; | 485 | int length = strlen(json); |
486 | int length = snprintf(reply, sizeof(reply), "%s", json); | 486 | client_valid = ipc_send_reply(client, json, (uint32_t)length); |
487 | free(json); | 487 | free(json); |
488 | client_valid = ipc_send_reply(client, reply, (uint32_t)length); | ||
489 | free_cmd_results(results); | 488 | free_cmd_results(results); |
490 | goto exit_cleanup; | 489 | goto exit_cleanup; |
491 | } | 490 | } |