Open shmichael opened 2 years ago
Even I'm facing the same problem. Where you able to find a solution for this?
I suppose I'll have to punt on this project being useless in the present state, but in case it helps someone:
Here's an incomplete solution that seems to solve the first 4 of 5 errors above.
My changes were to versions of ubuntu, SOLC, souffle, python, and I added the --legacy
argument for souffle (documented here). Here's the updated Dockerfile.txt (you'll need to remove the .txt extension).
However, I still get the following error:
Error: Ambiguous record in trusted-variable.dl:29:46
1 errors generated, evaluation aborted
The command '/bin/sh -c cd /sec/securify/staticanalysis/souffle_analysis && souffle --dl-program=../dl-program --fact-dir=/sec/securify/staticanalysis/facts_in --output-dir=/sec/securify/staticanalysis/facts_out -L../libfunctors -w analysis.dl --legacy' returned a non-zero code: 1
We can see the error message in the souffle code here and below but I don't see the next step to debug this.
void TypeCheckerImpl::visitRecordInit(const RecordInit& rec) {
TypeSet types = typeAnalysis.getTypes(&rec);
if (!isOfKind(types, TypeAttribute::Record) || types.size() != 1) {
report.addError("Ambiguous record", rec.getSrcLoc());
return;
}
// At this point we know that there is exactly one type in set, so we can take it.
auto& recordType = *as<analysis::RecordType>(*types.begin());
if (recordType.getFields().size() != rec.getArguments().size()) {
report.addError("Wrong number of arguments given to record", rec.getSrcLoc());
return;
}
}
Hello, has anyone solved this problem? I am trying to learn about securify2 for my undergraduate graduation project, but it may be beyond my current ability to solve.
I am running securify2 on Ubuntu 22. Installed dependencies, python3.7 and followed the installation instructions (not using docker).