From: Youngjae Shin Date: Wed, 13 Oct 2021 05:38:34 +0000 (+0900) Subject: handle json exceptions X-Git-Tag: submit/tizen/20220126.064839~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=21993b51898b9c9e075d4d17d515069d45324aee;p=platform%2Fcore%2Fapi%2Fcontext.git handle json exceptions Change-Id: I024b42d63611dc8cbb9d58f1672ca8a345cfa2b2 --- diff --git a/src/trigger/CustomTemplate.cpp b/src/trigger/CustomTemplate.cpp index c09459a..06136c0 100644 --- a/src/trigger/CustomTemplate.cpp +++ b/src/trigger/CustomTemplate.cpp @@ -136,15 +136,20 @@ bool CustomTemplate::isValidTemplate(const Json::Value& tmplJson) std::string dataType; for (auto& key : keys) { - // Get type - if (tmplJson[key].isMember(CT_TYPE_ENUM)) { - success = tmplJson[key][CT_TYPE_ENUM].isArray(); - IF_FAIL_RETURN_TAG(success, false, _E, "Invalid template"); - dataType = CT_TYPE_ENUM; - } else if (tmplJson[key].isMember(CT_KEY_TYPE)) { - dataType = tmplJson[key][CT_KEY_TYPE].asString(); - IF_FAIL_RETURN_TAG(dataType == CT_TYPE_INTEGER || dataType == CT_TYPE_STRING, - false, _E, "Invalid template"); + try { + if (tmplJson[key].isMember(CT_TYPE_ENUM)) { + success = tmplJson[key][CT_TYPE_ENUM].isArray(); + IF_FAIL_RETURN_TAG(success, false, _E, "Invalid template"); + dataType = CT_TYPE_ENUM; + } + else if (tmplJson[key].isMember(CT_KEY_TYPE)) { + dataType = tmplJson[key][CT_KEY_TYPE].asString(); + IF_FAIL_RETURN_TAG(dataType == CT_TYPE_INTEGER || dataType == CT_TYPE_STRING, + false, _E, "Invalid template"); + } + } catch (Json::Exception const& e) { + _E("Invalid template(%s)", e.what()); + return false; } if (dataType == CT_TYPE_INTEGER) {