-
Notifications
You must be signed in to change notification settings - Fork 436
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
False positive of indirenct call in openssl #1587
Comments
ptr analyse I use is |
Could you please show the complete reproduction details? @Br1m4zz |
openssl Compile (by setting CC=wllvm):Bc is generated by WLLVM with llvm-16 analyse codesource SVFG node:
dst SVFG node:
Here's code snipet: API usage: ...
/// Build SVFIR
SVFIRBuilder builder(svfModule);
pag = builder.build();
Andersen* pta = AndersenSFR::createAndersenSFR(pag);
SVFGBuilder svfBuilder(true);
svfg = svfBuilder.buildFullSVFG(pta);
source_node_analyze();
analyze_all_struct(); // this is where we use struct_spread_rules_find_gep
... propogation rules: bool struct_spread_rules_find_gep(const VFGNode* vNode)
{
if(SVFUtil::isa<BinaryOPVFGNode>(vNode)
|| SVFUtil::isa<UnaryOPVFGNode>(vNode)
|| SVFUtil::isa<CmpVFGNode>(vNode)
|| SVFUtil::isa<MSSAPHISVFGNode>(vNode)
|| SVFUtil::isa<IntraMSSAPHISVFGNode>(vNode)
|| SVFUtil::isa<BranchVFGNode>(vNode)
|| SVFUtil::isa<ActualOUTSVFGNode>(vNode)
|| SVFUtil::isa<FormalOUTSVFGNode>(vNode)
|| SVFUtil::isa<ActualINSVFGNode>(vNode)
|| SVFUtil::isa<FormalINSVFGNode>(vNode)
|| SVFUtil::isa<IntraPHIVFGNode>(vNode)
|| SVFUtil::isa<IntraPHISVFGNode>(vNode)
//
)
{
// if(debug)SVFUtil::errs()<<">>>>>>>>node is abondon\n";
return false;
}
if(const FormalParmVFGNode *fp_vfgnode = SVFUtil::dyn_cast<FormalParmVFGNode>(vNode))
{
if(is_in_glibc_function_list(fp_vfgnode->getFun()->getName()))
{
return false;
}
}
return true;
} I don't know whether it have something to do with the following warnings: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Target: OPENSSL
False positive site: function ptr e->destroy should not point to ossl_statem_accept
BC available for further analyse.
Here's my propogation result:
The text was updated successfully, but these errors were encountered: