aboutsummaryrefslogtreecommitdiff
path: root/projects/gpac/fuzz_parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'projects/gpac/fuzz_parse.c')
-rw-r--r--projects/gpac/fuzz_parse.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/projects/gpac/fuzz_parse.c b/projects/gpac/fuzz_parse.c
new file mode 100644
index 000000000..b7c9ac9a6
--- /dev/null
+++ b/projects/gpac/fuzz_parse.c
@@ -0,0 +1,36 @@
+/* Copyright 2021 Google LLC
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+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 <stdio.h>
+#include <unistd.h>
+
+#include <gpac/internal/isomedia_dev.h>
+#include <gpac/constants.h>
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ char filename[256];
+ sprintf(filename, "/tmp/libfuzzer.%d", getpid());
+
+ FILE *fp = fopen(filename, "wb");
+ if (!fp) {
+ return 0;
+ }
+ fwrite(data, size, 1, fp);
+ fclose(fp);
+
+ GF_ISOFile *movie = NULL;
+ movie = gf_isom_open_file(filename, GF_ISOM_OPEN_READ_DUMP, NULL);
+ if (movie != NULL) {
+ gf_isom_close(movie);
+ }
+ unlink(filename);
+ return 0;
+}