@@ -855,6 +855,10 @@ UA_StatusCode UA_Variant_decodeBinary(UA_ByteString const *src, UA_UInt32 *offse
if(UA_TYPES_IDS[typeIndex] == typeid.identifier.numeric)
break;
}
+
+ if(typeIndex >= UA_TYPES_COUNT)
+ return UA_STATUSCODE_BADDECODINGERROR;
const UA_DataType *dataType = &UA_TYPES[typeIndex];
if(!isArray) {
@@ -1776,4 +1776,4 @@ int main(void) {
srunner_free(sr);
return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
+}
@@ -193,7 +193,7 @@ int main(void) {
suite_add_tcase(s, tc);
sr = srunner_create(s);
- srunner_set_fork_status(sr, CK_NOFORK);
+ //srunner_set_fork_status(sr, CK_NOFORK);
srunner_run_all (sr, CK_NORMAL);
number_failed += srunner_ntests_failed(sr);