From ba73120634accd7064bd9e201926574b2a7e7c7f Mon Sep 17 00:00:00 2001 From: omkar Date: Fri, 9 Jan 2015 11:34:18 -0800 Subject: [PATCH] C++ Avoid crash in case of Invalid/Empty Payload This change is based on a bug reported by SHP wherein they want to be able to send response with empty payload. Instead of throwing an error, we now send an empty OCRepresentation() object to the client callback. Change-Id: I16f298bf8a0bdbb545e1133d751582f418991352 Signed-off-by: omkar (cherry picked from commit 43e5a4f0a42a739e93f65ccf31eff82df11144c3) Reviewed-on: https://gerrit.iotivity.org/gerrit/212 Tested-by: jenkins-iotivity Reviewed-by: Sudarshan Prasad --- resource/src/InProcClientWrapper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resource/src/InProcClientWrapper.cpp b/resource/src/InProcClientWrapper.cpp index 4d4558c..6ecaaf4 100644 --- a/resource/src/InProcClientWrapper.cpp +++ b/resource/src/InProcClientWrapper.cpp @@ -96,7 +96,7 @@ namespace OC { if(clientResponse->resJSONPayload == nullptr || clientResponse->resJSONPayload[0] == '\0') { - throw OCException(OC::Exception::STR_NULL_RESPONSE, OC_STACK_ERROR); + return OCRepresentation(); } MessageContainer oc; @@ -105,7 +105,7 @@ namespace OC std::vector::const_iterator it = oc.representations().begin(); if(it == oc.representations().end()) { - throw OCException(OC::Exception::INVALID_REPRESENTATION, OC_STACK_ERROR); + return OCRepresentation(); } // first one is considered the root, everything else is considered a child of this one. -- 2.7.4