From b2e98932177aa7abeddf63a5961f358393137672 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 15 Jan 2024 14:52:49 +0100 Subject: [PATCH 1/2] disable unused protocols Disable the protocols that need 3rd party dependencies to get added to the build and therefore do not work in the current build. Fixes #96 --- .github/workflows/ci.yml | 4 ---- Makefile.am | 36 ++++++++++++++++++++---------------- curl_fuzzer.cc | 4 ++-- scripts/fuzz_targets | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb1420f1..e632fc66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,13 +52,9 @@ jobs: - curl_fuzzer_http - curl_fuzzer_https - curl_fuzzer_imap - - curl_fuzzer_ldap - curl_fuzzer_mqtt - curl_fuzzer_pop3 - - curl_fuzzer_rtmp - curl_fuzzer_rtsp - - curl_fuzzer_scp - - curl_fuzzer_sftp - curl_fuzzer_smb - curl_fuzzer_smtp - curl_fuzzer_tftp diff --git a/Makefile.am b/Makefile.am index 12b29cba..47f8f4d3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -43,19 +43,22 @@ FUZZPROGS = curl_fuzzer \ curl_fuzzer_http \ curl_fuzzer_https \ curl_fuzzer_imap \ - curl_fuzzer_ldap \ curl_fuzzer_mqtt \ curl_fuzzer_pop3 \ - curl_fuzzer_rtmp \ curl_fuzzer_rtsp \ - curl_fuzzer_scp \ - curl_fuzzer_sftp \ curl_fuzzer_smb \ curl_fuzzer_smtp \ curl_fuzzer_ws \ curl_fuzzer_tftp \ fuzz_url +# need external libs: +# curl_fuzzer_ldap \ +# curl_fuzzer_rtmp \ +# curl_fuzzer_scp \ +# curl_fuzzer_sftp \ + + FUZZLIBS = libstandaloneengine.a COMMON_SOURCES = curl_fuzzer.cc curl_fuzzer_tlv.cc curl_fuzzer_callback.cc @@ -92,27 +95,15 @@ curl_fuzzer_https_LDADD = $(COMMON_LDADD) curl_fuzzer_imap_SOURCES = $(COMMON_SOURCES) curl_fuzzer_imap_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_IMAP curl_fuzzer_imap_LDADD = $(COMMON_LDADD) -curl_fuzzer_ldap_SOURCES = $(COMMON_SOURCES) -curl_fuzzer_ldap_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_LDAP -curl_fuzzer_ldap_LDADD = $(COMMON_LDADD) curl_fuzzer_mqtt_SOURCES = $(COMMON_SOURCES) curl_fuzzer_mqtt_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_MQTT curl_fuzzer_mqtt_LDADD = $(COMMON_LDADD) curl_fuzzer_pop3_SOURCES = $(COMMON_SOURCES) curl_fuzzer_pop3_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_POP3 curl_fuzzer_pop3_LDADD = $(COMMON_LDADD) -curl_fuzzer_rtmp_SOURCES = $(COMMON_SOURCES) -curl_fuzzer_rtmp_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_RTMP -curl_fuzzer_rtmp_LDADD = $(COMMON_LDADD) curl_fuzzer_rtsp_SOURCES = $(COMMON_SOURCES) curl_fuzzer_rtsp_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_RTSP curl_fuzzer_rtsp_LDADD = $(COMMON_LDADD) -curl_fuzzer_scp_SOURCES = $(COMMON_SOURCES) -curl_fuzzer_scp_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_SCP -curl_fuzzer_scp_LDADD = $(COMMON_LDADD) -curl_fuzzer_sftp_SOURCES = $(COMMON_SOURCES) -curl_fuzzer_sftp_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_SFTP -curl_fuzzer_sftp_LDADD = $(COMMON_LDADD) curl_fuzzer_smb_SOURCES = $(COMMON_SOURCES) curl_fuzzer_smb_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_SMB curl_fuzzer_smb_LDADD = $(COMMON_LDADD) @@ -126,6 +117,19 @@ curl_fuzzer_ws_SOURCES = $(COMMON_SOURCES) curl_fuzzer_ws_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_WS curl_fuzzer_ws_LDADD = $(COMMON_LDADD) +#curl_fuzzer_rtmp_SOURCES = $(COMMON_SOURCES) +#curl_fuzzer_rtmp_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_RTMP +#curl_fuzzer_rtmp_LDADD = $(COMMON_LDADD) +#curl_fuzzer_ldap_SOURCES = $(COMMON_SOURCES) +#curl_fuzzer_ldap_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_LDAP +#curl_fuzzer_ldap_LDADD = $(COMMON_LDADD) +#curl_fuzzer_scp_SOURCES = $(COMMON_SOURCES) +#curl_fuzzer_scp_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_SCP +#curl_fuzzer_scp_LDADD = $(COMMON_LDADD) +#curl_fuzzer_sftp_SOURCES = $(COMMON_SOURCES) +#curl_fuzzer_sftp_CXXFLAGS = $(COMMON_FLAGS) -DFUZZ_PROTOCOLS_SFTP +#curl_fuzzer_sftp_LDADD = $(COMMON_LDADD) + fuzz_url_SOURCES = fuzz_url.cc fuzz_url_CXXFLAGS = $(COMMON_FLAGS) fuzz_url_LDADD = $(COMMON_LDADD) diff --git a/curl_fuzzer.cc b/curl_fuzzer.cc index 44f0a239..4a7b03b9 100644 --- a/curl_fuzzer.cc +++ b/curl_fuzzer.cc @@ -511,8 +511,8 @@ int fuzz_set_allowed_protocols(FUZZ_DATA *fuzz) /* Do not allow telnet currently as it accepts input from stdin. */ allowed_protocols = "dict,file,ftp,ftps,gopher,gophers,http,https,imap,imaps," - "ldap,ldaps,mqtt,pop3,pop3s,rtmp,rtmpe,rtmps,rtmpt,rtmpte,rtmpts," - "rtsp,scp,sftp,smb,smbs,smtp,smtps,tftp"; + "mqtt,pop3,pop3s," + "rtsp,smb,smbs,smtp,smtps,tftp"; #endif #ifdef FUZZ_PROTOCOLS_DICT allowed_protocols = "dict"; diff --git a/scripts/fuzz_targets b/scripts/fuzz_targets index 907a163a..39670d6c 100644 --- a/scripts/fuzz_targets +++ b/scripts/fuzz_targets @@ -1,3 +1,3 @@ #!/bin/bash -export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_ldap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtmp curl_fuzzer_rtsp curl_fuzzer_scp curl_fuzzer_sftp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url" +export FUZZ_TARGETS="curl_fuzzer_dict curl_fuzzer_file curl_fuzzer_ftp curl_fuzzer_gopher curl_fuzzer_http curl_fuzzer_https curl_fuzzer_imap curl_fuzzer_mqtt curl_fuzzer_pop3 curl_fuzzer_rtsp curl_fuzzer_smb curl_fuzzer_smtp curl_fuzzer_tftp curl_fuzzer_ws curl_fuzzer fuzz_url" From 7249661e66a95dc95c6938369574f86a0d0b1248 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 15 Jan 2024 15:57:37 +0100 Subject: [PATCH 2/2] fixup remove backslashes from commented lines --- Makefile.am | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index 47f8f4d3..7cbadd2b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -53,11 +53,10 @@ FUZZPROGS = curl_fuzzer \ fuzz_url # need external libs: -# curl_fuzzer_ldap \ -# curl_fuzzer_rtmp \ -# curl_fuzzer_scp \ -# curl_fuzzer_sftp \ - +# curl_fuzzer_ldap +# curl_fuzzer_rtmp +# curl_fuzzer_scp +# curl_fuzzer_sftp FUZZLIBS = libstandaloneengine.a