aboutsummaryrefslogtreecommitdiff
path: root/agent/src/main/java/com/code_intelligence/jazzer/runtime/BUILD.bazel
blob: b408e985b29d2bff77d14716a478c0445e14e799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
load("@fmeum_rules_jni//jni:defs.bzl", "java_jni_library", "jni_headers")

java_library(
    name = "fuzzed_data_provider",
    srcs = [
        "FuzzedDataProviderImpl.java",
    ],
    visibility = [
        "//agent/src/main/java/com/code_intelligence/jazzer/replay:__pkg__",
        "//agent/src/test/java/com/code_intelligence/jazzer/runtime:__pkg__",
        "//driver/src/main/java/com/code_intelligence/jazzer/driver:__pkg__",
    ],
    deps = [
        "//agent/src/main/java/com/code_intelligence/jazzer/api",
    ],
)

jni_headers(
    name = "fuzzed_data_provider.hdrs",
    lib = ":fuzzed_data_provider",
    visibility = ["//driver:__pkg__"],
)

java_library(
    name = "coverage_map",
    srcs = ["CoverageMap.java"],
    visibility = [
        "//agent/src/jmh/java/com/code_intelligence/jazzer/instrumentor:__pkg__",
        "//driver/src/main/java/com/code_intelligence/jazzer/driver:__pkg__",
        "//driver/src/test:__subpackages__",
        "//driver/testdata:__pkg__",
    ],
    deps = [
        ":unsafe_provider",
    ],
)

jni_headers(
    name = "coverage_map.hdrs",
    lib = ":coverage_map",
    visibility = ["//driver:__pkg__"],
)

java_library(
    name = "signal_handler",
    srcs = ["SignalHandler.java"],
    visibility = ["//driver/src/main/java/com/code_intelligence/jazzer/driver:__pkg__"],
)

jni_headers(
    name = "signal_handler.hdrs",
    lib = ":signal_handler",
    visibility = ["//driver:__pkg__"],
)

java_jni_library(
    name = "trace_data_flow_native_callbacks",
    srcs = ["TraceDataFlowNativeCallbacks.java"],
    native_libs = select({
        # On Windows, the fuzzer callbacks are statically linked into the driver instead (see
        # //driver:jazzer_driver).
        "@platforms//os:windows": [],
        "//conditions:default": [
            "//agent/src/main/native/com/code_intelligence/jazzer/runtime:jazzer_fuzzer_callbacks",
        ],
    }),
    visibility = [
        # For libFuzzer callbacks.
        "//agent/src/main/native/com/code_intelligence/jazzer/runtime:__pkg__",
        # For handleLibraryLoad.
        "//driver:__pkg__",
    ],
    deps = [
        "//agent/src/main/java/com/code_intelligence/jazzer/utils",
    ],
)

java_library(
    name = "unsafe_provider",
    srcs = ["UnsafeProvider.java"],
    visibility = [
        "//driver/src/test:__subpackages__",
        "//sanitizers/src/main/java:__subpackages__",
    ],
)

java_library(
    name = "runtime",
    srcs = [
        "HardToCatchError.java",
        "JazzerInternal.java",
        "NativeLibHooks.java",
        "RecordingFuzzedDataProvider.java",
        "TraceCmpHooks.java",
        "TraceDivHooks.java",
        "TraceIndirHooks.java",
    ],
    visibility = ["//visibility:public"],
    runtime_deps = [
        ":signal_handler",
        "//agent/src/main/java/com/code_intelligence/jazzer/autofuzz",
    ],
    deps = [
        ":coverage_map",
        ":fuzzed_data_provider",
        ":trace_data_flow_native_callbacks",
        "//agent/src/main/java/com/code_intelligence/jazzer/api",
        "//agent/src/main/java/com/code_intelligence/jazzer/utils",
    ],
)