From aaaa91c1e8a9dcd1cfdce14855bf6e9d39ffe9c4 Mon Sep 17 00:00:00 2001 From: Sourav Bhuwalka Date: Fri, 31 Jan 2020 23:15:57 +0530 Subject: [PATCH] [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 --- resource/src/InProcClientWrapper.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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; } -- 2.7.4