You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2020/02/21 20:26:57 UTC

[thrift] branch master updated: THRIFT-5094: Fix memory leak in thrift_server_set_property() Client: c_glib Patch: wangyunjian

This is an automated email from the ASF dual-hosted git repository.

jensg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git


The following commit(s) were added to refs/heads/master by this push:
     new bd26d38  THRIFT-5094: Fix memory leak in thrift_server_set_property() Client: c_glib Patch: wangyunjian
bd26d38 is described below

commit bd26d385693e4f172c348dc27f9d1e23288c50cf
Author: wangyunjian <wa...@huawei.com>
AuthorDate: Sat Feb 15 08:29:59 2020 -0500

    THRIFT-5094: Fix memory leak in thrift_server_set_property()
    Client: c_glib
    Patch: wangyunjian
    
    This closes #2008
    
    Signed-off-by: wangyunjian <wa...@huawei.com>
---
 lib/c_glib/src/thrift/c_glib/server/thrift_server.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/c_glib/src/thrift/c_glib/server/thrift_server.c b/lib/c_glib/src/thrift/c_glib/server/thrift_server.c
index ccf9153..2109add 100644
--- a/lib/c_glib/src/thrift/c_glib/server/thrift_server.c
+++ b/lib/c_glib/src/thrift/c_glib/server/thrift_server.c
@@ -76,21 +76,27 @@ thrift_server_set_property (GObject *object, guint property_id,
   switch (property_id)
   {
     case PROP_THRIFT_SERVER_PROCESSOR:
+      g_clear_object (&server->processor);
       server->processor = g_value_dup_object (value);
       break;
     case PROP_THRIFT_SERVER_SERVER_TRANSPORT:
+      g_clear_object (&server->server_transport);
       server->server_transport = g_value_dup_object (value);
       break;
     case PROP_THRIFT_SERVER_INPUT_TRANSPORT_FACTORY:
+      g_clear_object (&server->input_transport_factory);
       server->input_transport_factory = g_value_dup_object (value);
       break;
     case PROP_THRIFT_SERVER_OUTPUT_TRANSPORT_FACTORY:
+      g_clear_object (&server->output_transport_factory);
       server->output_transport_factory = g_value_dup_object (value);
       break;
     case PROP_THRIFT_SERVER_INPUT_PROTOCOL_FACTORY:
+      g_clear_object (&server->input_protocol_factory);
       server->input_protocol_factory = g_value_dup_object (value);
       break;
     case PROP_THRIFT_SERVER_OUTPUT_PROTOCOL_FACTORY:
+      g_clear_object (&server->output_protocol_factory);
       server->output_protocol_factory = g_value_dup_object (value);
       break;
   }