From 228861c95fb05364ba5954ce6bd6f277d16d5d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= Date: Sun, 12 Aug 2018 11:46:30 +0200 Subject: [PATCH] Release memory from json_dumps and decrement references (#7836) --- .../network/NetworkServerAdvertiser.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/openrct2/network/NetworkServerAdvertiser.cpp b/src/openrct2/network/NetworkServerAdvertiser.cpp index 93e7eae7a3..f0f559fe6f 100644 --- a/src/openrct2/network/NetworkServerAdvertiser.cpp +++ b/src/openrct2/network/NetworkServerAdvertiser.cpp @@ -108,8 +108,12 @@ private: json_t* body = json_object(); json_object_set_new(body, "key", json_string(_key.c_str())); json_object_set_new(body, "port", json_integer(_port)); - request.body = json_dumps(body, JSON_COMPACT); + + char* bodyDump = json_dumps(body, JSON_COMPACT); + request.body = bodyDump; request.header["Content-Type"] = "application/json"; + free(bodyDump); + json_decref(body); Http::DoAsync(request, [&](Http::Response response) -> void { if (response.status != Http::Status::OK) @@ -120,9 +124,8 @@ private: json_t* root = Json::FromString(response.body); this->OnRegistrationResponse(root); + json_decref(root); }); - - json_decref(body); } void SendHeartbeat() @@ -132,8 +135,11 @@ private: request.method = Http::Method::PUT; json_t* body = GetHeartbeatJson(); - request.body = json_dumps(body, JSON_COMPACT); + char* bodyDump = json_dumps(body, JSON_COMPACT); + request.body = bodyDump; request.header["Content-Type"] = "application/json"; + free(bodyDump); + json_decref(body); _lastHeartbeatTime = platform_get_ticks(); Http::DoAsync(request, [&](Http::Response response) -> void { @@ -145,9 +151,8 @@ private: json_t* root = Json::FromString(response.body); this->OnHeartbeatResponse(root); + json_decref(root); }); - - json_decref(body); } void OnRegistrationResponse(json_t* jsonRoot)