Skip to content

Commit 5d04b9c

Browse files
committed
Fix a bug where variables do not reset
1 parent 5b193af commit 5d04b9c

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

soot-infoflow-android/src/soot/jimple/infoflow/android/source/parsers/xml/AbstractXMLSourceSinkParser.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,9 @@
2727
import soot.jimple.infoflow.data.AbstractMethodAndClass;
2828
import soot.jimple.infoflow.river.AdditionalFlowCondition;
2929
import soot.jimple.infoflow.sourcesSinks.definitions.AccessPathTuple;
30-
import soot.jimple.infoflow.sourcesSinks.definitions.FieldSourceSinkDefinition;
3130
import soot.jimple.infoflow.sourcesSinks.definitions.IAccessPathBasedSourceSinkDefinition;
3231
import soot.jimple.infoflow.sourcesSinks.definitions.ISourceSinkCategory;
3332
import soot.jimple.infoflow.sourcesSinks.definitions.ISourceSinkDefinition;
34-
import soot.jimple.infoflow.sourcesSinks.definitions.MethodSourceSinkDefinition;
3533
import soot.jimple.infoflow.sourcesSinks.definitions.MethodSourceSinkDefinition.CallType;
3634
import soot.jimple.infoflow.sourcesSinks.definitions.SourceSinkCondition;
3735
import soot.jimple.infoflow.sourcesSinks.definitions.SourceSinkType;
@@ -413,19 +411,18 @@ public void endElement(String uri, String localName, String qName) throws SAXExc
413411
}
414412

415413
protected void handleEndtagMethod() {
416-
if (methodSignature == null)
417-
return;
418-
419-
// Check whether we have data
420-
if (!baseAPs.isEmpty() || !paramAPs.isEmpty() || !returnAPs.isEmpty()) {
421-
AndroidMethod tempMeth = AndroidMethod.createFromSignature(methodSignature);
422-
if (tempMeth != null) {
423-
@SuppressWarnings("unchecked")
424-
ISourceSinkDefinition ssd = createMethodSourceSinkDefinition(tempMeth, baseAPs,
425-
paramAPs.toArray(new Set[paramAPs.size()]), returnAPs, callType, category, conditions);
426-
addSourceSinkDefinition(methodSignature, ssd);
427-
} else {
428-
logger.error("Invalid method signature: " + methodSignature);
414+
if (methodSignature != null) {
415+
// Check whether we have data
416+
if (!baseAPs.isEmpty() || !paramAPs.isEmpty() || !returnAPs.isEmpty()) {
417+
AndroidMethod tempMeth = AndroidMethod.createFromSignature(methodSignature);
418+
if (tempMeth != null) {
419+
@SuppressWarnings("unchecked")
420+
ISourceSinkDefinition ssd = createMethodSourceSinkDefinition(tempMeth, baseAPs,
421+
paramAPs.toArray(new Set[paramAPs.size()]), returnAPs, callType, category, conditions);
422+
addSourceSinkDefinition(methodSignature, ssd);
423+
} else {
424+
logger.error("Invalid method signature: " + methodSignature);
425+
}
429426
}
430427
}
431428

0 commit comments

Comments
 (0)