/src/gpac/testsuite/oss-fuzzers/fuzz_route.c
Line | Count | Source |
1 | | #include <stdio.h> |
2 | | #include <unistd.h> |
3 | | |
4 | | #include <gpac/filters.h> |
5 | | #include <gpac/constants.h> |
6 | | |
7 | | |
8 | | int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) |
9 | 3.43k | { |
10 | 3.43k | char filename[256]; |
11 | 3.43k | char argname[300]; |
12 | 3.43k | GF_Err e; |
13 | 3.43k | sprintf(filename, "/tmp/libfuzzer.%d", getpid()); |
14 | | |
15 | 3.43k | FILE *fp = fopen(filename, "wb"); |
16 | 3.43k | if (!fp) return 0; |
17 | 3.43k | fwrite(data, size, 1, fp); |
18 | 3.43k | fclose(fp); |
19 | | |
20 | 3.43k | gf_sys_init(0, "0"); |
21 | 3.43k | const char *args[2]; |
22 | 3.43k | args[0] = "gpac"; |
23 | 3.43k | sprintf(argname, "-netcap=src=%s,nrt", filename); |
24 | 3.43k | args[1] = argname; |
25 | 3.43k | e = gf_sys_set_args(2, args); |
26 | | |
27 | 3.43k | if (e==GF_OK) { |
28 | 2.98k | const char *url = "route://234.0.0.1:1234/live.mpd"; |
29 | 2.98k | GF_FilterSession *fs = gf_fs_new_defaults(0); |
30 | 2.98k | GF_Filter *src = gf_fs_load_source(fs, url, NULL, NULL, &e); |
31 | 2.98k | GF_Filter *insp = gf_fs_load_filter(fs, "inspect:deep", &e); |
32 | 2.98k | gf_fs_run(fs); |
33 | 2.98k | gf_fs_del(fs); |
34 | 2.98k | } |
35 | | |
36 | 3.43k | gf_sys_close(); |
37 | 3.43k | unlink(filename); |
38 | 3.43k | return 0; |
39 | 3.43k | } |