diff options
author | Marcus Meissner <meissner@suse.de> | 2020-01-28 23:26:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-28 14:26:04 -0800 |
commit | 1e9cae0bdf7bc2d81c8acfd8669e4681e322a885 (patch) | |
tree | 44547d8ad129e7bc29b5d04e12f9e53951a3495b /projects/libexif | |
parent | 96c9cd26c2e77a85f5ade9e50296edd20b64cac6 (diff) | |
download | oss-fuzz-1e9cae0bdf7bc2d81c8acfd8669e4681e322a885.tar.gz |
[libexif] also fuzz exif makernotes (#2913)
* also fuzz makernotes
* add me as secondary libexif helper
* libexif new test adjusted after review, also use same indentstyle
Diffstat (limited to 'projects/libexif')
-rw-r--r-- | projects/libexif/exif_loader_fuzzer.cc | 28 | ||||
-rw-r--r-- | projects/libexif/project.yaml | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/projects/libexif/exif_loader_fuzzer.cc b/projects/libexif/exif_loader_fuzzer.cc index 7c32c9c51..98365b7b5 100644 --- a/projects/libexif/exif_loader_fuzzer.cc +++ b/projects/libexif/exif_loader_fuzzer.cc @@ -12,6 +12,33 @@ void data_func(ExifContent *content, void *user_data) { exif_content_foreach_entry(content, content_func, NULL); } +static void +test_exif_data (ExifData *d) { + unsigned int i, c; + char v[1024], *p; + ExifMnoteData *md; + + md = exif_data_get_mnote_data (d); + if (!md) { + return; + } + + exif_mnote_data_ref (md); + exif_mnote_data_unref (md); + + c = exif_mnote_data_count (md); + for (i = 0; i < c; i++) { + const char *name = exif_mnote_data_get_name (md, i); + if (!name) { + break; + } + exif_mnote_data_get_title (md, i); + exif_mnote_data_get_description (md, i); + exif_mnote_data_get_value (md, i, v, sizeof (v)); + } +} + + extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { ExifLoader *loader = exif_loader_new(); ExifData *exif_data; @@ -25,6 +52,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { return 0; } exif_data_foreach_content(exif_data, data_func, NULL); + test_exif_data (exif_data); exif_loader_unref(loader); exif_data_unref(exif_data); return 0; diff --git a/projects/libexif/project.yaml b/projects/libexif/project.yaml index 4ccd24cf9..72f2d93df 100644 --- a/projects/libexif/project.yaml +++ b/projects/libexif/project.yaml @@ -2,6 +2,7 @@ homepage: "https://libexif.github.io" primary_contact: "dan@coneharvesters.com" auto_ccs: - paul.l.kehrer@gmail.com + - marcus@jet.franken.de fuzzing_engines: - libfuzzer - afl |