Fixed crash in bool arrays not being added properly on parse
authorErich Keane <erich.keane@intel.com>
Thu, 13 Aug 2015 00:50:34 +0000 (17:50 -0700)
committerErich Keane <erich.keane@intel.com>
Thu, 13 Aug 2015 16:31:47 +0000 (16:31 +0000)
The parser had a mistaken condition, so that a boolean array will never
be added as a type to a rep payload.  This corrects the && to || in
order to ensure that it actually executes!

Change-Id: I215e5477596f7c5ad49e2a79a3af619343ef74d8
Signed-off-by: Erich Keane <erich.keane@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/2194
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
resource/csdk/stack/src/ocpayloadparse.c

index 05c6b59..aa63c53 100644 (file)
@@ -635,7 +635,7 @@ static bool OCParseArray(OCRepPayload* out, const char* name, CborValue* contain
                      err = err || cbor_value_get_boolean(&insideArray, &(((bool*)arr)[i]));
                      err = err || cbor_value_advance_fixed(&insideArray);
                 }
-                if(err && !OCRepPayloadSetBoolArrayAsOwner(out, name, (bool*)arr, dimensions))
+                if(err || !OCRepPayloadSetBoolArrayAsOwner(out, name, (bool*)arr, dimensions))
                 {
                     OICFree(arr);
                     err = true;