From b6b37d8ce8a5ab7287916fa501b59d84a1ed0605 Mon Sep 17 00:00:00 2001 From: Furkan Sahin Date: Thu, 14 Dec 2017 16:44:18 +0100 Subject: ipc-server: Acquire ownership of referenced json_object properly When adding a referenced json_object with an unknown lifetime to another json_object, it must be done with a wrapped call to json_object_get() to acquire the ownership of that json_object. --- sway/ipc-server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sway/ipc-server.c b/sway/ipc-server.c index b560b930..80f4e5d0 100644 --- a/sway/ipc-server.c +++ b/sway/ipc-server.c @@ -1126,7 +1126,8 @@ static void ipc_event_binding(json_object *sb_obj) { sway_log(L_DEBUG, "Sending binding::run event"); json_object *obj = json_object_new_object(); json_object_object_add(obj, "change", json_object_new_string("run")); - json_object_object_add(obj, "binding", sb_obj); + // sb_obj gets owned by the temporary json_object, too. + json_object_object_add(obj, "binding", json_object_get(sb_obj)); const char *json_string = json_object_to_json_string(obj); ipc_send_event(json_string, IPC_EVENT_BINDING); -- cgit v1.2.3