Skip to content

Commit c0c7fe4

Browse files
committed
Handlde null signatures and sources
1 parent 96672a6 commit c0c7fe4

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/main/java/it/unipr/crosschain/checker/AccessControlIncompletenessChecker.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package it.unipr.crosschain.checker;
22

3+
import it.unipr.analysis.contract.Signature;
34
import it.unipr.analysis.contract.SmartContract;
45
import it.unipr.cfg.*;
56
import it.unipr.crosschain.taint.RelationalTaintAbstractDomain;
@@ -252,7 +253,11 @@ private void reportVulnerability(CheckToolWithAnalysisResults<
252253
if (functionSignatureByStatement.equals("no-function-found"))
253254
return;
254255

255-
if (contract.getFunctionSignatureByString(functionSignatureByStatement).isProtected()) {
256+
Signature signature = contract.getFunctionSignatureByString(functionSignatureByStatement);
257+
if (signature == null)
258+
return;
259+
260+
if (signature.isProtected()) {
256261
log.warn(
257262
"[POSSIBLE] Access Control Incompleteness vulnerability at pc {} (line {}) coming from pc {} (line {}).",
258263
((ProgramCounterLocation) sink.getLocation()).getPc(),

src/main/java/it/unipr/crosschain/functions/ProtectedFunctionFinder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ private void checkForProtection(Statement sink, EVMCFG cfg, Set<Integer> jumpiPp
8686

8787
for (Statement functionEntryPoint : functionSignature.getEntryPoints()) {
8888
Statement source = cfg.getClosestStatementOfType(functionEntryPoint, Caller.class);
89+
if (source == null)
90+
continue;
8991

9092
log.debug("Source {} at pc {} line {}",
9193
source,
@@ -101,7 +103,6 @@ private void checkForProtection(Statement sink, EVMCFG cfg, Set<Integer> jumpiPp
101103

102104
functionSignature.setProtected(true);
103105
log.info("Function {} is protected", functionSignature.getFullSignature());
104-
105106
}
106107
}
107108
}

0 commit comments

Comments
 (0)