diff --git a/.gitlab/ci/host-test.yml b/.gitlab/ci/host-test.yml index d9af377d6f..ee6f8690b2 100644 --- a/.gitlab/ci/host-test.yml +++ b/.gitlab/ci/host-test.yml @@ -105,17 +105,6 @@ test_lwip_dhcps_fuzzer_on_host: FUZZER_TEST_DIR: components/lwip/test_afl_host FUZZER_PARAMS: MODE=dhcp_server -test_compile_fuzzers: - extends: .host_test_template - image: $CI_DOCKER_REGISTRY/afl-fuzzer-test - script: - - cd ${IDF_PATH}/components/lwip/test_afl_host - - make MODE=dhcp_server - - make MODE=dhcp_client - - make MODE=dns - - cd ${IDF_PATH}/components/mdns/test_afl_fuzz_host - - make - test_spiffs_on_host: extends: .host_test_template script: diff --git a/.gitlab/ci/pre_check.yml b/.gitlab/ci/pre_check.yml index 403285aece..0a10c6b0df 100644 --- a/.gitlab/ci/pre_check.yml +++ b/.gitlab/ci/pre_check.yml @@ -89,6 +89,17 @@ check_wifi_lib_md5: - IDF_TARGET=esp32 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh - IDF_TARGET=esp32s2 $IDF_PATH/components/esp_wifi/test_md5/test_md5.sh +check_fuzzer_compilation: + extends: .pre_check_base_template + image: $CI_DOCKER_REGISTRY/afl-fuzzer-test + script: + - cd ${IDF_PATH}/components/lwip/test_afl_host + - make MODE=dhcp_server + - make MODE=dhcp_client + - make MODE=dns + - cd ${IDF_PATH}/components/mdns/test_afl_fuzz_host + - make + check_public_headers: extends: - .pre_check_base_template diff --git a/components/mdns/test_afl_fuzz_host/esp32_compat.h b/components/mdns/test_afl_fuzz_host/esp32_compat.h index e8a998e29a..7f7383b9f5 100644 --- a/components/mdns/test_afl_fuzz_host/esp32_compat.h +++ b/components/mdns/test_afl_fuzz_host/esp32_compat.h @@ -52,6 +52,7 @@ #define portMAX_DELAY 0xFFFFFFFF #define portTICK_PERIOD_MS 1 +#define ESP_LOGW(a,b) #define ESP_LOGD(a,b) #define ESP_LOGE(a,b,c) #define ESP_LOGV(a,b,c,d) @@ -60,6 +61,8 @@ #define __ESP_SYSTEM_H__ #define INC_TASK_H +#define pdMS_TO_TICKS(a) a +#define portTICK_RATE_MS 10 #define xSemaphoreTake(s,d) #define xTaskDelete(a) #define vTaskDelete(a) free(a) diff --git a/components/mdns/test_afl_fuzz_host/esp_attr.h b/components/mdns/test_afl_fuzz_host/esp_attr.h index 149f25c002..49bb7515df 100644 --- a/components/mdns/test_afl_fuzz_host/esp_attr.h +++ b/components/mdns/test_afl_fuzz_host/esp_attr.h @@ -2,5 +2,8 @@ #define IRAM_ATTR #define FLAG_ATTR(TYPE) #define QUEUE_H +#define __ARCH_CC_H__ #define __XTENSA_API_H__ #define SSIZE_MAX INT_MAX +#define LWIP_HDR_IP6_ADDR_H +#define LWIP_HDR_IP4_ADDR_H diff --git a/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c b/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c index 57c04b2164..72ada5f9d2 100644 --- a/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c +++ b/components/mdns/test_afl_fuzz_host/esp_netif_loopback_mock.c @@ -11,13 +11,9 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#include "esp32_compat.h" -// mock the types to decouple from lwip -typedef void * esp_netif_t; -typedef enum { DHCP_MOCK } esp_netif_dhcp_status_t; -typedef tcpip_adapter_ip_info_t esp_netif_ip_info_t; -typedef ip6_addr_t esp_ip6_addr_t; +#include "esp32_compat.h" +#include "esp_netif_lwip_internal.h" esp_err_t esp_netif_get_ip_info(esp_netif_t *esp_netif, esp_netif_ip_info_t *ip_info) { diff --git a/components/mdns/test_afl_fuzz_host/esp_netif_objects_mock.c b/components/mdns/test_afl_fuzz_host/esp_netif_objects_mock.c index 9d0213082a..1241449924 100644 --- a/components/mdns/test_afl_fuzz_host/esp_netif_objects_mock.c +++ b/components/mdns/test_afl_fuzz_host/esp_netif_objects_mock.c @@ -15,8 +15,6 @@ #include "esp_netif.h" #include "sys/queue.h" #include "esp_log.h" -#include "freertos/FreeRTOS.h" -#include "freertos/semphr.h" #include "esp_netif_private.h" #include