Skip to content

Commit 75925d1

Browse files
authored
Merge pull request OSGeo#11588 from rouault/libertiff_fuzzer
fuzzers: add a fuzzer for LIBERTIFF driver
2 parents 17d995e + 890c469 commit 75925d1

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

fuzzers/CMakeLists.txt

+10
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,16 @@ build_gdal_specialized_fuzzer(gdal_sdts GDALRegister_SDTS "/vsimem/test.tar" "/v
124124
build_gdal_specialized_fuzzer(gdal_vrt GDALAllRegister "/vsimem/test.tar" "/vsitar//vsimem/test.tar/test.vrt")
125125
build_gdal_specialized_fuzzer(ers GDALRegister_ERS "/vsimem/test.tar" "/vsitar//vsimem/test.tar/test.ers")
126126

127+
build_fuzzer(
128+
NAME
129+
libertiff_fuzzer
130+
SOURCES
131+
gdal_fuzzer.cpp
132+
DEFINITIONS
133+
-DREGISTER_FUNC=GDALRegister_LIBERTIFF
134+
-DDRIVER_NAME="LIBERTIFF"
135+
)
136+
127137
build_fuzzer(
128138
NAME
129139
gdal_filesystem_fuzzer

fuzzers/build_google_oss_fuzzers.sh

+2
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ build_gdal_specialized_fuzzer()
6969

7070
build_fuzzer gtiff_mmap $(dirname $0)/gdal_fuzzer.cpp -DREGISTER_FUNC=GDALRegister_GTiff -DGTIFF_USE_MMAP
7171

72+
build_fuzzer libertiff $(dirname $0)/gdal_fuzzer.cpp -DREGISTER_FUNC=GDALRegister_LIBERTIFF -DDRIVER_NAME="\"LIBERTIFF\""
73+
7274
fuzzerFiles="$(dirname $0)/*.cpp"
7375
for F in $fuzzerFiles; do
7476
if test $F != "$(dirname $0)/fuzzingengine.cpp"; then

fuzzers/gdal_fuzzer.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,15 @@ int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len)
213213
#else
214214
const char *pszGDALFilename = GDAL_FILENAME;
215215
#endif
216-
GDALDatasetH hDS = GDALOpen(pszGDALFilename, GA_ReadOnly);
216+
217+
#ifdef DRIVER_NAME
218+
const char *const apszAllowedDrivers[] = {DRIVER_NAME, nullptr};
219+
#else
220+
const char *const *apszAllowedDrivers = nullptr;
221+
#endif
222+
223+
GDALDatasetH hDS = GDALOpenEx(pszGDALFilename, GDAL_OF_RASTER,
224+
apszAllowedDrivers, nullptr, nullptr);
217225
if (hDS)
218226
{
219227
const int nTotalBands = GDALGetRasterCount(hDS);

0 commit comments

Comments
 (0)