aboutsummaryrefslogtreecommitdiff
path: root/projects/libexif
diff options
context:
space:
mode:
authorMarcus Meissner <meissner@suse.de>2020-01-28 23:26:04 +0100
committerGitHub <noreply@github.com>2020-01-28 14:26:04 -0800
commit1e9cae0bdf7bc2d81c8acfd8669e4681e322a885 (patch)
tree44547d8ad129e7bc29b5d04e12f9e53951a3495b /projects/libexif
parent96c9cd26c2e77a85f5ade9e50296edd20b64cac6 (diff)
downloadoss-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.cc28
-rw-r--r--projects/libexif/project.yaml1
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