dhscanner-kbgen 1.0.28 → 1.0.29
raw patch · 2 files changed
+12/−4 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Kbgen: FuncDefCtor :: FuncDef -> Fact
Files
- dhscanner-kbgen.cabal +1/−1
- src/Kbgen.hs +11/−3
dhscanner-kbgen.cabal view
@@ -33,7 +33,7 @@ * explain in plain English your query's purpose * et voilà ! -version: 1.0.28 +version: 1.0.29 license: GPL-3.0-only license-file: LICENSE author: OrenGitHub
src/Kbgen.hs view
@@ -245,7 +245,7 @@ -- This is how the fact will look inside the Prolog file -- -- @ --- kb_func_def( Func, Name, DefinedInFile ). +-- kb_func_def( Func, Name, DefinedInFile, DefinedInDir ). -- @ -- -- __When should I use this fact__ ( motivation: [CVE-2024-29028](https://nvd.nist.gov/vuln/detail/CVE-2024-29028) ) @@ -824,7 +824,8 @@ -- * often, a single bitcode instruction will yield /more/ than one fact -- data Fact - = ClassDefCtor ClassDef + = FuncDefCtor FuncDef + | ClassDefCtor ClassDef | ParamNameCtor ParamName | ArgiForCallCtor ArgiForCall | ConstStringCtor ConstString @@ -854,8 +855,9 @@ -- @ -- prologify :: Fact -> String -prologify (ParamNameCtor content) = prologify_ParamName content +prologify (FuncDefCtor content) = prologify_FuncDef content prologify (ClassDefCtor content) = prologify_ClassDef content +prologify (ParamNameCtor content) = prologify_ParamName content prologify (ArgiForCallCtor content) = prologifyArgiForCall content prologify (ConstStringCtor content) = prologify_ConstString content prologify (DataflowEdgeCtor content) = prologify_DataflowEdge content @@ -896,6 +898,12 @@ prologify_ClassDef :: ClassDef -> String prologify_ClassDef (ClassDef (Class loc) (Token.ClassName (Token.Named name _)) (ClassDefinedInFile f)) = prologify_ClassDef' loc name f + +prologify_FuncDef' :: Location -> String -> FilePath -> FilePath -> String +prologify_FuncDef' l name f d = printf "kb_func_def( %s, \'%s\', \'%s\', \'%s\' )." (locationify l) name f d + +prologify_FuncDef :: FuncDef -> String +prologify_FuncDef (FuncDef (Func loc) (Token.FuncName (Token.Named name _)) (FuncDefinedInFile f) (FuncDefinedInDir d)) = prologify_FuncDef' loc name f d unquote :: String -> String unquote = filter (/= '\'')