summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangyunjian <wangyunjian@huawei.com>2020-02-27 00:02:19 +0800
committerJens Geyer <jensg@apache.org>2020-07-01 23:18:03 +0200
commit761a869e0508d2cf7975b040a6da54ae62a889b6 (patch)
treee8f64a8a77b45b45434bb733210d648315f82533
parent6c5f5c8a94b9f8b697d5bd51f9a4fcb70e96c248 (diff)
downloadthrift-761a869e0508d2cf7975b040a6da54ae62a889b6.tar.gz
THRIFT-5118: Fix memory leak when the handler method return a exception
Client: c_glib Patch: wangyunjian This closes #2035 Signed-off-by: wangyunjian <wangyunjian@huawei.com>
-rw-r--r--compiler/cpp/src/thrift/generate/t_c_glib_generator.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc b/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
index fb45dfa6e..2a92183eb 100644
--- a/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
@@ -2445,6 +2445,7 @@ void t_c_glib_generator::generate_service_processor(t_service* tservice) {
f_service_ << args_indent << "\"" << (*xception_iter)->get_name() << "\", "
<< (*xception_iter)->get_name() << "," << endl << args_indent << "NULL);" << endl
<< endl;
+ f_service_ << indent() << "g_object_unref ("<< (*xception_iter)->get_name() <<");"<< endl;
f_service_ << indent() << "result =" << endl;
indent_up();
f_service_ << indent() << "((thrift_protocol_write_message_begin (output_protocol," << endl;