From f7020e76c16f4d7ec549f90065beb2131590161b Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Mon, 30 Apr 2018 13:12:41 -0400 Subject: [PATCH 1/1] Fix JSON reference counting errors --- mon/mon_req_decode.c | 4 +--- mon/mon_resp_encode.c | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/mon/mon_req_decode.c b/mon/mon_req_decode.c index 0c7e7f4..21bb64b 100644 --- a/mon/mon_req_decode.c +++ b/mon/mon_req_decode.c @@ -126,7 +126,7 @@ MON_REQ *mon_req_parse(TALLOC_CTX *mem_ctx, const char *input) * * (options are optional) * - * Caller must free the return value with MON_REQ_free(). + * Caller must free the return value with mon_req_free(). * * @param mem_ctx talloc context for the returned struct * @param req_json reference to JSON request object @@ -171,8 +171,6 @@ MON_REQ *mon_req_decode(TALLOC_CTX *mem_ctx, json_t *req_json) cleanup: talloc_free(tmp_ctx); - if (req_json) - json_decref(req_json); return req; } diff --git a/mon/mon_resp_encode.c b/mon/mon_resp_encode.c index 23c3dd8..7e41c65 100644 --- a/mon/mon_resp_encode.c +++ b/mon/mon_resp_encode.c @@ -79,6 +79,7 @@ json_t *mon_resp_encode(MON_RESP *resp) /* If we have a payload, add it */ if (resp->payload) { object_set_or_free_and_return(resp_json, jval, "payload", resp->payload); + json_incref(resp->payload); /* we just created a second reference to the payload */ } return resp_json; -- 2.1.4