Change to not use lazy release in channel class 53/273353/1 accepted/tizen/6.5/unified/20220408.135052 submit/tizen_6.5/20220407.050031 submit/tizen_6.5/20220407.072517
authorTaeminYeom <taemin.yeom@samsung.com>
Fri, 1 Apr 2022 09:25:07 +0000 (18:25 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Tue, 5 Apr 2022 01:08:20 +0000 (01:08 +0000)
It fixes memory leak in daemon

Change-Id: I3b2616f93e560b73cf0381a46aea4ba04ebe4170
Signed-off-by: TaeminYeom <taemin.yeom@samsung.com>
src/server/server_channel_handler.cpp
src/shared/channel_event_handler.cpp

index 07b268951297a5765b2fb413a767aacbdb872e76..2231bf91050ebd3cb364048fcf998c863f7085de 100644 (file)
@@ -77,14 +77,8 @@ void server_channel_handler::disconnected(channel *ch)
                m_listener_ids.erase(ch);
        }
 
-       if (ch->loop()) {
-               ch->loop()->add_idle_event(0, [](size_t, void* data) {
-                       channel* c = (channel*)data;
-                       delete c;
-               },  ch);
-       } else {
+       if (!ch->loop())
                _D("Should not be here : channel[%p]", ch);
-       }
 }
 
 void server_channel_handler::read(channel *ch, message &msg)
index 28f3398ca06a1aa7d4d3ffc520265f5776828b06..f7f32814a627b583143269922de706eee4feb82b 100644 (file)
@@ -49,6 +49,7 @@ bool channel_event_handler::handle(int fd, event_condition condition)
        if (condition & (EVENT_HUP)) {
                _D("Disconnect[%p] : The other proccess is dead", this);
                m_ch->disconnect();
+               delete m_ch;
                m_ch = NULL;
                return false;
        }