41 Commits

Author SHA1 Message Date
Julius Pfrommer 6901aedc07 Merge remote-tracking branch 'origin/1.5' into merge_15_master
Port keyless certificate validation into the GDS receiver driver instead
of restoring the removed server implementation. Preserve master's timer
batching, PubSub lifecycle and client HTTP configuration handling.

Adapt Publish cancellation to response tokens and the HEL/fuzz harnesses
to the explicit TCP driver. Keep SKS policy history and custom datatype
ownership intact, including failed replacement configuration cleanup.
Retain TPM error cleanup while enforcing key-handle and nonce lengths.

Validation:
- Full mbedTLS unit-test build with full namespace, GDS, SKS and Query.
- 21 affected suites passed with ASan/UBSan, plus 9 isolated SKS ownership
  and lifecycle checks.
- OpenSSL certificate update, GDS information model and client encryption
  suites passed with sanitizers.
- OPN, MSG and binary-message fuzzers each completed 100 sanitizer runs.
- Both TPM PubSub policy sources passed compilation checks.

The full SKS client suite timed out after multicast UDP sends reported
"No route to host" on this machine; its affected ownership and lifecycle
cases passed separately. No live TPM hardware validation was performed.
2026-10-04 16:49:17 +02:00
Julius Pfrommer e01e2310af Merge remote-tracking branch 'origin/1.4' into merge_14_15 2026-09-24 12:31:21 +02:00
Julius Pfrommer 95057b6227 test(fuzz): Close binary message connections 2026-09-23 07:24:15 +02:00
Julius Pfrommer a2fd5b7d53 test(fuzz): Exercise MSG service dispatch 2026-09-23 07:24:15 +02:00
Julius Pfrommer a476806541 Merge remote-tracking branch 'origin/1.5' into merge_15_master
# Conflicts:
#	.github/workflows/build_linux.yml
#	CHANGES.md
#	arch/common/eventloop_mqtt.c
#	examples/encryption/server_encryption_filestore.c
#	plugins/crypto/ua_certificategroup_filestore.c
#	src/pubsub/ua_pubsub_networkmessage_json.c
#	src/server/ua_discovery.h
#	src/server/ua_discovery_mdns.c
#	src/server/ua_discovery_mdns_avahi.c
#	src/server/ua_services_attribute.c
#	src/server/ua_services_discovery.c
#	src/server/ua_services_monitoreditem.c
#	src/server/ua_services_nodemanagement.c
#	src/server/ua_subscription.c
#	src/server/ua_subscription.h
#	src/server/ua_subscription_alarms_conditions.c
#	src/server/ua_subscription_event.c
#	src/ua_types_encoding_json_105.c
#	tests/client/check_activateSessionAsync.c
#	tests/server/check_local_monitored_item.c
#	tests/server/check_services_subscriptions.c
2026-09-03 14:33:21 +02:00
Julius Pfrommer d7ab816a4a test(fuzz): feed binary messages through an active connection
The binary-message harness passed its input on the callback that registers a listening connection. That callback only stores listener state, so the bytes never reached UACP message processing. Register the listener first, deliver the input on a separate active connection, and close both contexts during teardown.
2026-08-31 07:29:36 +02:00
Julius Pfrommer c4b088e93f breaking(server): Rename ServerComponent to Driver
This better expresses the intent why this is part of the public server API.
2026-06-07 16:46:24 +02:00
Julius Pfrommer 49f5b1c324 Merge remote-tracking branch 'origin/1.5' into merge_15_master_8 2026-05-04 11:47:34 +02:00
Julius Pfrommer d9023ff3dc refactor(tests): Generalize the ConnectionManager testing plugin 2026-05-04 10:03:06 +02:00
Julius Pfrommer 6500bf8cb8 refactor(server): Keep direct pointers to the internal server components 2026-03-27 14:25:31 +01:00
Julius Pfrommer 52abf05315 Merge remote-tracking branch 'origin/1.4' into merge_14_master_27 2025-04-23 00:45:27 +02:00
Julius Pfrommer 79bc02fc81 fix(tests): Fix the application-context setup in fuzz_binary_message.cc 2025-04-01 02:57:00 +02:00
Julius Pfrommer bf199466c9 refactor(server): Move all binary protocol definitions inside ua_server_binary.c 2023-04-29 22:25:30 +02:00
Julius Pfrommer d37724e6dc fix(fuzz): Correctly initialize ctx value in fuzz_binary_message.cc 2023-04-28 01:03:42 +02:00
Jan Hermes 87798df129 feat: add new keyvaluemap structure + utilities 2022-10-31 13:21:21 +01:00
Julius Pfrommer 5ef11b11ff refactor(core): Remove the old connection code 2022-08-05 09:13:05 +02:00
Julius Pfrommer d0b541bbf5 refactor(server): Make UA_Server_processBinaryMessage an internal API 2022-04-20 20:35:29 +02:00
Julius Pfrommer 7f538556b4 refactor(tests): Use C idioms in fuzz_binary_message.cc for consistency 2020-11-28 14:51:47 +01:00
Julius Pfrommer bad92d7bfd fix(tests): Make tests less verbose 2020-11-25 16:04:48 +01:00
Julius Pfrommer 7c23332027 refactor(test): Use _clear instead of _deleteMembers 2020-10-18 15:21:40 +02:00
Julius Pfrommer 0d2a69e234 fix(fuzz): fuzz_binary_message: Handling of very short messages 2020-06-08 20:23:59 +02:00
Julius Pfrommer a25bb75393 refactor(core): Move ConnectionConfig into SecureChannel 2020-01-18 21:15:08 +01:00
Stefan Profanter cdd7abc6a6 ci(fuzz): Add author to license header 2019-11-07 19:28:33 +01:00
Julius Pfrommer 6c777640e6 refactor(core): Replace UA_Connection_deleteMembers with UA_Connection_clear 2019-10-03 15:14:24 +02:00
Julius Pfrommer fd08d012d9 Server: Initialize the config in the server 2019-04-23 00:41:32 +02:00
Stefan Profanter 63f3653ff1 Additional header cleanup and consistent name of ns generated files 2019-03-21 20:16:31 +01:00
Stefan Profanter 94d61b6c13 Fuzz: Always return zero code on OOM
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11443

Credit to oss-fuzz
2018-11-30 08:49:51 +01:00
Stefan Profanter 8c87552a5b Fuzz: Add custom memory manager to simulate OOM
Adds custom memory manager to keep track of allocated and freed memory.
Based on the fuzzer input the maximum available RAM is set and if the
limit is reached no new allocation is allowed.

With this approach we can test OOM and memory allocation failure paths
in the source code.
2018-11-16 09:45:03 +01:00
Stefan Profanter 448e4e100c Additional error checking if initialization fails 2018-01-19 12:59:01 +01:00
Julius Pfrommer 97c90048f7 use a fixed send buffer for the testing connection 2017-12-23 21:19:22 +01:00
Stefan Profanter 97ccf0e19e Untabify 2017-12-02 14:20:24 +01:00
Julius Pfrommer 9313d4ee0d fix a unasigned memory problem in the fuzzer 2017-11-30 10:08:50 +01:00
Mark 0cabd40863 Modified testing NL and added SecureChannel test.
The testing NetworkLayer now writes the data it 'Sends' into a buffer,
so we can check the buffer in our unit tests.
The new test checks if the headers etc. are encoded correctly and
if the encryption functions are called for the correct data.
2017-11-30 10:08:50 +01:00
Stefan Profanter cd3020946e Cleanup server callbacks 2017-10-07 21:16:35 +02:00
Julius Pfrommer e0058770c9 rename /plugins/ua_config_standard.* to /plugins/ua_config_default.* 2017-09-21 17:46:30 +02:00
Infinity95 a8012d3040 endpoints in the server config; new/delete functions for the server config 2017-08-15 09:52:34 +02:00
Stefan Profanter 1271ae3417 Better align fuzzing test with real server execution 2017-08-06 14:29:34 +02:00
Julius Pfrommer b4f69cf923 Rename UA_Connection_completeMessages to UA_Connection_completeChunks;
Don't lookup the client hostname for a new connection
2017-07-22 10:56:32 +02:00
Stefan Profanter 2bcaaa248a Use cmake on oss-fuzz 2017-07-19 22:51:16 +02:00
Stefan Profanter daa02176f8 Fix for strict compiler flags 2017-07-19 18:21:41 +02:00
Stefan Profanter e1246aa354 Integrate fuzzer into continuous build env 2017-07-19 17:41:11 +02:00