|
|
@ -640,14 +640,11 @@ module Make (TaintSpecification : TaintSpec.S) = struct
|
|
|
|
| _ ->
|
|
|
|
| _ ->
|
|
|
|
Some ret_ap
|
|
|
|
Some ret_ap
|
|
|
|
in
|
|
|
|
in
|
|
|
|
let analyze_call astate_acc callee_pname =
|
|
|
|
|
|
|
|
let call_site = CallSite.make callee_pname callee_loc in
|
|
|
|
let call_site = CallSite.make callee_pname callee_loc in
|
|
|
|
let astate_with_sink =
|
|
|
|
let astate_with_sink =
|
|
|
|
if List.is_empty actuals then astate
|
|
|
|
if List.is_empty actuals then astate
|
|
|
|
else
|
|
|
|
else
|
|
|
|
let sinks =
|
|
|
|
let sinks = TraceDomain.Sink.get call_site actuals call_flags proc_data.ProcData.tenv in
|
|
|
|
TraceDomain.Sink.get call_site actuals call_flags proc_data.ProcData.tenv
|
|
|
|
|
|
|
|
in
|
|
|
|
|
|
|
|
List.fold sinks ~init:astate ~f:(fun astate sink ->
|
|
|
|
List.fold sinks ~init:astate ~f:(fun astate sink ->
|
|
|
|
add_sink sink actuals astate proc_data call_site )
|
|
|
|
add_sink sink actuals astate proc_data call_site )
|
|
|
|
in
|
|
|
|
in
|
|
|
@ -695,9 +692,7 @@ module Make (TaintSpecification : TaintSpec.S) = struct
|
|
|
|
| None ->
|
|
|
|
| None ->
|
|
|
|
astate_with_summary )
|
|
|
|
astate_with_summary )
|
|
|
|
in
|
|
|
|
in
|
|
|
|
Domain.join astate_acc astate_with_sanitizer
|
|
|
|
astate_with_sanitizer
|
|
|
|
in
|
|
|
|
|
|
|
|
analyze_call Domain.empty callee_pname
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let exec_instr (astate : Domain.t) (proc_data : extras ProcData.t) _ (instr : HilInstr.t) =
|
|
|
|
let exec_instr (astate : Domain.t) (proc_data : extras ProcData.t) _ (instr : HilInstr.t) =
|
|
|
|