From: Sourav Bhuwalka Date: Fri, 31 Jan 2020 17:45:57 +0000 (+0530) Subject: [CONPRO-1557] Iotivity crash (keep alive thread) X-Git-Tag: accepted/tizen/unified/20200407.130847~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F97%2F229397%2F1;p=platform%2Fupstream%2Fiotivity.git [CONPRO-1557] Iotivity crash (keep alive thread) Added try catch block before std::thread https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/660 (cherry-picked from eb06ec216a4595c565ad62901f5ab5029ed2a93d) Change-Id: Ia0e4faf4c832a06a4826ddb732703a12ab65110a Signed-off-by: Sourav Bhuwalka Signed-off-by: DoHyun Pyun --- diff --git a/resource/src/InProcClientWrapper.cpp b/resource/src/InProcClientWrapper.cpp index 1062ea3..5ec8f92 100755 --- a/resource/src/InProcClientWrapper.cpp +++ b/resource/src/InProcClientWrapper.cpp @@ -1797,15 +1797,19 @@ namespace OC try { attrs = parseGetSetCallback(clientResponse); + OIC_LOG_V(DEBUG, TAG, "%s: call response callback", __func__); + std::thread exec(context->callback, result, attrs); + exec.detach(); } catch(OC::OCException& e) { result = e.code(); } - - OIC_LOG_V(DEBUG, TAG, "%s: call response callback", __func__); - std::thread exec(context->callback, result, attrs); - exec.detach(); + catch (std::exception &e) + { + oclog() << "Exception in KeepAliveRespCallback(), ignoring response: " + << e.what() << std::flush; + } return OC_STACK_DELETE_TRANSACTION; }