File tree Expand file tree Collapse file tree 7 files changed +30
-11
lines changed
interprocedural_analyses/taint Expand file tree Collapse file tree 7 files changed +30
-11
lines changed Original file line number Diff line number Diff line change @@ -3095,7 +3095,7 @@ let create_model_from_attribute
30953095let is_obscure ~definitions ~stubs call_target =
30963096 (* The callable is obscure if and only if it is a type stub or it is not in the set of known
30973097 definitions. *)
3098- Hash_set . mem stubs call_target
3098+ Interprocedural.Target.HashsetSharedMemory.ReadOnly . mem stubs call_target
30993099 || definitions >> | Core.Fn. flip Hash_set. mem call_target >> | not |> Option. value ~default: false
31003100
31013101
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ val parse
2828 taint_configuration:TaintConfiguration.Heap. t ->
2929 source_sink_filter:SourceSinkFilter. t option ->
3030 definitions:Interprocedural.Target.HashSet. t option ->
31- stubs:Interprocedural.Target.HashSet . t ->
31+ stubs:Interprocedural.Target.HashsetSharedMemory.ReadOnly . t ->
3232 python_version:PythonVersion. t ->
3333 unit ->
3434 ModelParseResult. t
Original file line number Diff line number Diff line change @@ -165,7 +165,7 @@ let parse_models_and_queries_from_sources
165165 ~python_version
166166 sources
167167 =
168- (* TODO(T117715045): Do not pass all definitions and stubs explicitly to map_reduce,
168+ (* TODO(T117715045): Do not pass all definitions explicitly to map_reduce,
169169 * since this will marshal-ed between processes and hence is costly. *)
170170 let map sources =
171171 let taint_configuration = TaintConfiguration.SharedMemory. get taint_configuration in
@@ -250,7 +250,7 @@ let initialize_models
250250 ~resolution
251251 ~source_sink_filter: taint_configuration.source_sink_filter
252252 ~definitions: (Some definitions_hashset)
253- ~stubs: stubs_hashset
253+ ~stubs: ( Interprocedural.Target.HashsetSharedMemory. read_only stubs_shared_memory)
254254 in
255255 Statistics. performance
256256 ~name: " Parsed taint models"
Original file line number Diff line number Diff line change @@ -45,7 +45,10 @@ let assert_taint ?models ?models_source ~context source expect =
4545 ~taint_configuration: TaintConfiguration.Heap. default
4646 ~source_sink_filter: None
4747 ~definitions: None
48- ~stubs: (Target.HashSet. create () )
48+ ~stubs:
49+ ([]
50+ |> Interprocedural.Target.HashsetSharedMemory. from_heap
51+ |> Interprocedural.Target.HashsetSharedMemory. read_only)
4952 ~python_version: ModelParser.PythonVersion. default
5053 ()
5154 in
Original file line number Diff line number Diff line change @@ -101,7 +101,10 @@ let set_up_environment
101101 ~taint_configuration
102102 ~source_sink_filter: (Some taint_configuration.source_sink_filter)
103103 ~definitions: None
104- ~stubs: (Target.HashSet. create () )
104+ ~stubs:
105+ ([]
106+ |> Interprocedural.Target.HashsetSharedMemory. from_heap
107+ |> Interprocedural.Target.HashsetSharedMemory. read_only)
105108 ~python_version: ModelParser.PythonVersion. default
106109 ()
107110 in
@@ -211,7 +214,10 @@ let assert_invalid_model ?path ?source ?(sources = []) ~context ~model_source ~e
211214 ?path
212215 ~source: (Test. trim_extra_indentation model_source)
213216 ~definitions: None
214- ~stubs: (Target.HashSet. create () )
217+ ~stubs:
218+ ([]
219+ |> Interprocedural.Target.HashsetSharedMemory. from_heap
220+ |> Interprocedural.Target.HashsetSharedMemory. read_only)
215221 ~python_version: ModelParser.PythonVersion. default
216222 ()
217223 |> fun { ModelParseResult. errors; _ } ->
Original file line number Diff line number Diff line change @@ -427,7 +427,10 @@ let get_initial_models ~context =
427427 ~taint_configuration: TaintConfiguration.Heap. default
428428 ~source_sink_filter: None
429429 ~definitions: None
430- ~stubs: (Target.HashSet. create () )
430+ ~stubs:
431+ ([]
432+ |> Interprocedural.Target.HashsetSharedMemory. from_heap
433+ |> Interprocedural.Target.HashsetSharedMemory. read_only)
431434 ~python_version: ModelParser.PythonVersion. default
432435 ()
433436 in
@@ -546,6 +549,7 @@ let initialize
546549 match models_source with
547550 | None -> Registry. empty, ModelQueryExecution.ModelQueryRegistryMap. empty
548551 | Some source ->
552+ let stubs_shared_memory = Target.HashsetSharedMemory. from_heap stubs in
549553 let { ModelParseResult. models; errors; queries } =
550554 ModelParser. parse
551555 ~resolution: global_resolution
@@ -554,7 +558,7 @@ let initialize
554558 ~taint_configuration
555559 ~source_sink_filter: (Some taint_configuration.source_sink_filter)
556560 ~definitions: (Some (Target.HashSet. of_list definitions))
557- ~stubs: (Target.HashSet. of_list stubs )
561+ ~stubs: (Target.HashsetSharedMemory. read_only stubs_shared_memory )
558562 ~python_version: ModelParser.PythonVersion. default
559563 ()
560564 in
Original file line number Diff line number Diff line change @@ -797,7 +797,10 @@ let rec process_request_exn ~type_environment ~build_system request =
797797 ~taint_configuration
798798 ~source_sink_filter: None
799799 ~definitions: None
800- ~stubs: (Interprocedural.Target.HashSet. create () )
800+ ~stubs:
801+ ([]
802+ |> Interprocedural.Target.HashsetSharedMemory. from_heap
803+ |> Interprocedural.Target.HashsetSharedMemory. read_only)
801804 ~python_version
802805 ()
803806 |> fun { Taint.ModelParseResult. queries; errors; _ } ->
@@ -1019,7 +1022,10 @@ let rec process_request_exn ~type_environment ~build_system request =
10191022 ~taint_configuration
10201023 ~source_sink_filter: None
10211024 ~definitions: None
1022- ~stubs: (Interprocedural.Target.HashSet. create () )
1025+ ~stubs:
1026+ ([]
1027+ |> Interprocedural.Target.HashsetSharedMemory. from_heap
1028+ |> Interprocedural.Target.HashsetSharedMemory. read_only)
10231029 ~python_version
10241030 ()
10251031 |> fun { Taint.ModelParseResult. errors; queries; _ } -> errors, queries
You can’t perform that action at this time.
0 commit comments