From 2d79b55159ef0effd7fcedcf4d8e30d93d58f93d Mon Sep 17 00:00:00 2001 From: Jon Shallow Date: Tue, 28 Jan 2025 15:45:59 +0000 Subject: [PATCH] CIFuzz: Make sure libcoap is running when calling coap_delete_pdu() --- tests/oss-fuzz/pdu_parse_tcp_target.c | 6 +++++- tests/oss-fuzz/pdu_parse_udp_target.c | 6 +++++- tests/oss-fuzz/pdu_parse_ws_target.c | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/oss-fuzz/pdu_parse_tcp_target.c b/tests/oss-fuzz/pdu_parse_tcp_target.c index 50f723ef7e..d9c2154fb5 100644 --- a/tests/oss-fuzz/pdu_parse_tcp_target.c +++ b/tests/oss-fuzz/pdu_parse_tcp_target.c @@ -5,7 +5,10 @@ size_t coap_pdu_encode_header(coap_pdu_t *, coap_proto_t); int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - coap_pdu_t *pdu = coap_pdu_init(0, 0, 0, size); + coap_pdu_t *pdu; + + coap_startup(); + pdu = coap_pdu_init(0, 0, 0, size); if (pdu) { coap_set_log_level(COAP_LOG_ERR); if (coap_pdu_parse(COAP_PROTO_TCP, data, size, pdu)) { @@ -19,5 +22,6 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { } coap_delete_pdu(pdu); } + coap_cleanup(); return 0; } diff --git a/tests/oss-fuzz/pdu_parse_udp_target.c b/tests/oss-fuzz/pdu_parse_udp_target.c index 956fdd9f25..baa1f43ce8 100644 --- a/tests/oss-fuzz/pdu_parse_udp_target.c +++ b/tests/oss-fuzz/pdu_parse_udp_target.c @@ -5,7 +5,10 @@ size_t coap_pdu_encode_header(coap_pdu_t *, coap_proto_t); int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - coap_pdu_t *pdu = coap_pdu_init(0, 0, 0, size); + coap_pdu_t *pdu; + + coap_startup(); + pdu = coap_pdu_init(0, 0, 0, size); if (pdu) { coap_set_log_level(COAP_LOG_ERR); if (coap_pdu_parse(COAP_PROTO_UDP, data, size, pdu)) { @@ -19,5 +22,6 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { } coap_delete_pdu(pdu); } + coap_cleanup(); return 0; } diff --git a/tests/oss-fuzz/pdu_parse_ws_target.c b/tests/oss-fuzz/pdu_parse_ws_target.c index c0232f9104..f2939b124d 100644 --- a/tests/oss-fuzz/pdu_parse_ws_target.c +++ b/tests/oss-fuzz/pdu_parse_ws_target.c @@ -5,7 +5,10 @@ size_t coap_pdu_encode_header(coap_pdu_t *, coap_proto_t); int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - coap_pdu_t *pdu = coap_pdu_init(0, 0, 0, size); + coap_pdu_t *pdu; + + coap_startup(); + pdu = coap_pdu_init(0, 0, 0, size); if (pdu) { coap_set_log_level(COAP_LOG_ERR); if (coap_pdu_parse(COAP_PROTO_WS, data, size, pdu)) { @@ -19,5 +22,6 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { } coap_delete_pdu(pdu); } + coap_cleanup(); return 0; }