Skip to content

Commit

Permalink
[Parser] hotfix for io
Browse files Browse the repository at this point in the history
  • Loading branch information
oojahooo committed Apr 24, 2024
1 parent 60a3b54 commit b77d8e2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/parser.ml
Original file line number Diff line number Diff line change
Expand Up @@ -273,15 +273,15 @@ let get_alarm_comps alarm splited filename =
| "AlarmDerefExp", a :: e :: lvs
| "AlarmPrintf", a :: e :: lvs
| "AlarmDivExp", a :: _ :: e :: lvs
| "AlarmCastExp", a :: e :: lvs
| ("AlarmCastExp" | "AlarmCastIOExp"), a :: e :: lvs
| "AlarmFread", a :: _ :: e :: lvs
when String.equal a alarm ->
( Chc.singleton (Chc.Elt.FDNumeral e),
List.map ~f:Chc.Elt.numer lvs |> Chc.of_list )
| "AlarmPlusExp", a :: e1 :: e2 :: lvs
| "AlarmMinusExp", a :: e1 :: e2 :: lvs
| "AlarmMultExp", a :: e1 :: e2 :: lvs
| "AlarmShiftExp", a :: e1 :: e2 :: lvs
| ("AlarmPlusExp" | "AlarmPlusIOExp"), a :: e1 :: e2 :: lvs
| ("AlarmMinusExp" | "AlarmMinusIOExp"), a :: e1 :: e2 :: lvs
| ("AlarmMultExp" | "AlarmMultIOExp"), a :: e1 :: e2 :: lvs
| ("AlarmShiftExp" | "AlarmShiftIOExp"), a :: e1 :: e2 :: lvs
| "AlarmMemchr", a :: e1 :: e2 :: lvs
| "AlarmSprintf", a :: e1 :: e2 :: lvs
| "AlarmStrcat", a :: e1 :: e2 :: lvs
Expand Down
3 changes: 3 additions & 0 deletions src/utils.ml
Original file line number Diff line number Diff line change
Expand Up @@ -223,9 +223,12 @@ let find_alarm_file alarm_dir f =
&& Filename.concat alarm_dir f
|> In_channel.read_lines |> List.is_empty |> not

let hotfix_for_io = String.substr_replace_first ~pattern:"IO" ~with_:""

let find_bug_type dir alarm =
let alarm_dir = Filename.concat dir ("sparrow-out/taint/datalog/" ^ alarm) in
Sys.readdir alarm_dir
|> Array.find_exn ~f:(find_alarm_file alarm_dir)
|> Filename.chop_extension
|> String.chop_prefix_exn ~prefix:"Alarm"
|> hotfix_for_io

0 comments on commit b77d8e2

Please sign in to comment.