Просмотр исходного кода

Add fuzzer test for UA_encodeBinary

Stefan Profanter лет назад: 7
Родитель
Сommit
b57f97dac4
1 измененных файлов с 11 добавлено и 1 удалено
  1. 11 1
      tests/fuzz/fuzz_binary_decode.cc

+ 11 - 1
tests/fuzz/fuzz_binary_decode.cc

@@ -43,8 +43,18 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
 	};
 
 	UA_StatusCode ret = UA_decodeBinary(&binary, &offset, dst, &UA_TYPES[typeIndex], 0, nullptr);
+
 	if (ret == UA_STATUSCODE_GOOD) {
-		//do nothing
+		// now also test encoding
+		UA_ByteString encoded;
+		UA_ByteString_allocBuffer(&encoded, binary.length);
+		const UA_Byte *end = &encoded.data[binary.length];
+		UA_Byte *pos = encoded.data;
+		ret = UA_encodeBinary(dst, &UA_TYPES[typeIndex], &pos, &end, NULL, NULL);
+		if (ret == UA_STATUSCODE_GOOD) {
+			// do nothing
+		}
+		UA_ByteString_deleteMembers(&encoded);
 	}
 	UA_delete(dst, &UA_TYPES[typeIndex]);