From 5a06c07ca79288aaa341a31bf55d07ab4e99bf97 Mon Sep 17 00:00:00 2001 From: Juergen Graf Date: Tue, 12 Mar 2013 01:24:38 +0100 Subject: [PATCH] remove warnings from com.ibm.wala.dalvik --- .../classLoader/ActivityModelMethod.java | 4 ++-- .../ibm/wala/dalvik/classLoader/DexCFG.java | 7 +++--- .../dalvik/classLoader/DexFileModule.java | 4 ++-- .../wala/dalvik/classLoader/DexIRFactory.java | 3 ++- .../classLoader/WDexClassLoaderImpl.java | 4 ++-- .../ipa/callgraph/impl/DexFakeRootMethod.java | 2 +- .../ssa/AbstractIntRegisterMachine.java | 4 +++- .../ibm/wala/dalvik/ssa/DexSSABuilder.java | 23 ++++++++++--------- .../org/scandroid/domain/DomainElement.java | 1 + .../org/scandroid/flow/InflowAnalysis.java | 7 +++--- .../org/scandroid/flow/LocalSinkPoint.java | 1 + .../org/scandroid/flow/OutflowAnalysis.java | 3 +++ .../scandroid/flow/StaticFieldSinkPoint.java | 8 +++---- .../functions/CallNoneToReturnFunction.java | 1 + .../IFDSTaintFlowFunctionProvider.java | 16 +++++-------- .../flow/functions/PairBasedFlowFunction.java | 6 ++--- .../flow/functions/ReturnFlowFunction.java | 1 - .../org/scandroid/flow/types/FlowType.java | 3 ++- .../PrefixTransferFunctionProvider.java | 12 ++++------ .../prefixtransfer/PrefixTransferGraph.java | 4 ++-- .../UriPrefixTransferGraph.java | 2 +- .../src/org/scandroid/spec/AndroidSpecs.java | 11 ++++----- .../src/org/scandroid/spec/ResolveSpec.java | 16 ++++++------- .../synthmethod/SSAtoXMLVisitor.java | 3 ++- .../org/scandroid/util/CGAnalysisContext.java | 1 + .../src/org/scandroid/util/DexDotUtil.java | 6 ++--- .../src/org/scandroid/util/EntryPoints.java | 15 ++++++++---- .../scandroid/util/WalaGraphToJGraphT.java | 3 ++- 28 files changed, 88 insertions(+), 83 deletions(-) diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java index 1b3215db7..2fc5fd9f1 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/ActivityModelMethod.java @@ -76,8 +76,8 @@ public class ActivityModelMethod extends DexIMethod { } catch (Exception e) { throw new IllegalArgumentException(e); } - Section cldeff = activityModelDF - .getSectionForType(TYPE_CLASS_DEF_ITEM); + @SuppressWarnings("unchecked") + Section cldeff = activityModelDF.getSectionForType(TYPE_CLASS_DEF_ITEM); for (ClassDefItem cdefitems : cldeff.getItems()) { if (cdefitems.getClassType().getTypeDescriptor() .equals("Lactivity/model/ActivityModelActivity;")) { diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java index 80c391213..75f8a9192 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java @@ -162,7 +162,8 @@ public class DexCFG extends AbstractCFG{ boolean[] r = new boolean[getInstructions().length]; boolean[] catchers = new boolean[getInstructions().length]; // we initially start with both the entry and exit block. - int blockCount = 2; + @SuppressWarnings("unused") + int blockCount = 2; // Compute r so r[i] == true iff instruction i begins a basic block. // While doing so count the number of blocks. @@ -663,8 +664,8 @@ public class DexCFG extends AbstractCFG{ @Override public String toString() { StringBuffer s = new StringBuffer(""); - for (Iterator it = iterator(); it.hasNext();) { - BasicBlock bb = (BasicBlock) it.next(); + for (Iterator it = iterator(); it.hasNext();) { + BasicBlock bb = it.next(); s.append("BB").append(getNumber(bb)).append("\n"); for (int j = bb.getFirstInstructionIndex(); j <= bb.getLastInstructionIndex(); j++) { s.append(" ").append(j).append(" ").append(getInstructions()[j]).append("\n"); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java index b63777a67..2cb282810 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexFileModule.java @@ -81,8 +81,8 @@ public class DexFileModule implements Module { // create ModuleEntries from ClassDefItem entries = new HashSet(); - Section cldeff = dexfile - .getSectionForType(TYPE_CLASS_DEF_ITEM); + @SuppressWarnings("unchecked") + Section cldeff = dexfile.getSectionForType(TYPE_CLASS_DEF_ITEM); for (ClassDefItem cdefitems : cldeff.getItems()) { logger.debug("DexFileModule adding class: " + cdefitems.getConciseIdentity()); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIRFactory.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIRFactory.java index d0a7e44f7..8b32e78b3 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIRFactory.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexIRFactory.java @@ -34,7 +34,8 @@ public class DexIRFactory extends DefaultIRFactory { public final static boolean buildLocalMap = false; - @Override + @SuppressWarnings("rawtypes") + @Override public ControlFlowGraph makeCFG(IMethod method, Context C) throws IllegalArgumentException { if (method == null) { throw new IllegalArgumentException("null method"); diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java index ad3ca504d..532501254 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/WDexClassLoaderImpl.java @@ -71,7 +71,7 @@ import com.ibm.wala.util.warnings.Warnings; public class WDexClassLoaderImpl extends ClassLoaderImpl { private static final Logger logger = LoggerFactory.getLogger(WDexClassLoaderImpl.class); - private SetOfClasses lExclusions; +// private SetOfClasses lExclusions; private IClassLoader lParent; @@ -90,7 +90,7 @@ public class WDexClassLoaderImpl extends ClassLoaderImpl { SetOfClasses exclusions, IClassHierarchy cha) { super(loader, cha.getScope().getArrayClassLoader(), parent, exclusions, cha); lParent = parent; - lExclusions = exclusions; +// lExclusions = exclusions; //DEBUG_LEVEL = 0; } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java index 764fab5b7..89b9ad8c8 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/impl/DexFakeRootMethod.java @@ -252,7 +252,7 @@ public class DexFakeRootMethod extends AbstractRootMethod { * @return true iff block is a basic block in the fake root method * @throws IllegalArgumentException if block is null */ - public static boolean isFromFakeRoot(IBasicBlock block) { + public static boolean isFromFakeRoot(IBasicBlock block) { if (block == null) { throw new IllegalArgumentException("block is null"); } diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java index bc3f2339d..402462f2a 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java @@ -73,6 +73,7 @@ import com.ibm.wala.util.debug.UnimplementedError; *

* In this implementation, each dataflow variable value is an integer, and the "meeter" object provides the meets */ +@SuppressWarnings("rawtypes") public abstract class AbstractIntRegisterMachine implements FixedPointConstants { private static final Logger logger = LoggerFactory.getLogger(AbstractIntRegisterMachine.class); @@ -587,7 +588,8 @@ public abstract class AbstractIntRegisterMachine implements FixedPointConstants * @return the height of stacks that are being meeted. Return -1 if there is no stack meet necessary. * @param operands The operands for this operator. operands[0] is the left-hand side. */ - private static int computeMeetStackHeight(IVariable[] operands) { + @SuppressWarnings("unused") + private static int computeMeetStackHeight(IVariable[] operands) { MachineState lhs = (MachineState) operands[0]; int height = -1; if (lhs.stack != null) { diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java index 2dc9e5098..f36c1daeb 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java @@ -60,7 +60,6 @@ import com.ibm.wala.shrikeBT.IConditionalBranchInstruction; import com.ibm.wala.shrikeBT.IGetInstruction; import com.ibm.wala.shrikeBT.IInvokeInstruction; import com.ibm.wala.shrikeBT.IUnaryOpInstruction; -import com.ibm.wala.shrikeBT.IndirectionData; import com.ibm.wala.shrikeBT.InstanceofInstruction; import com.ibm.wala.shrikeBT.MonitorInstruction; import com.ibm.wala.shrikeBT.NewInstruction; @@ -134,7 +133,7 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { /** * information about indirect use of local variables in the bytecode */ - private final IndirectionData bytecodeIndirections; +// private final IndirectionData bytecodeIndirections; private final ShrikeIndirectionData shrikeIndirections; @@ -147,7 +146,7 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { this.method = method; this.symbolTable = symbolTable; this.insts = method.getDeclaringClass().getClassLoader().getInstructionFactory(); - this.bytecodeIndirections = method.getIndirectionData(); +// this.bytecodeIndirections = method.getIndirectionData(); this.shrikeIndirections = new ShrikeIndirectionData(instructions.length); assert cfg != null : "Null CFG"; } @@ -156,7 +155,7 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { final SSACFG cfg; - final SSAInstruction[] instructions; +// final SSAInstruction[] instructions; final SymbolTable symbolTable; @@ -164,7 +163,7 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { SymbolTableMeeter(SymbolTable symbolTable, SSACFG cfg, SSAInstruction[] instructions, DexCFG dexCFG) { this.cfg = cfg; - this.instructions = instructions; +// this.instructions = instructions; this.symbolTable = symbolTable; this.dexCFG = dexCFG; } @@ -372,7 +371,7 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { */ private SSAInstruction[] creators; - final SSA2LocalMap localMap; +// final SSA2LocalMap localMap; final SSAPiNodePolicy piNodePolicy; @@ -386,7 +385,7 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { this.instructions = instructions; this.symbolTable = symbolTable; this.loader = dexCFG.getMethod().getDeclaringClass().getClassLoader().getReference(); - this.localMap = localMap; +// this.localMap = localMap; init(this.new NodeVisitor(), this.new EdgeVisitor()); } @@ -1105,7 +1104,8 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { private Dominators dom = null; - private int findRethrowException() { + @SuppressWarnings("unused") + private int findRethrowException() { int index = getCurrentInstructionIndex(); SSACFG.BasicBlock bb = cfg.getBlockForInstruction(index); if (bb.isCatchBlock()) { @@ -1431,7 +1431,8 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { * Record the beginning of a new range, starting at the given program counter, in which a particular value number corresponds to * a particular local number */ - void startRange(int pc, int localNumber, int valueNumber) { + @SuppressWarnings("unused") + void startRange(int pc, int localNumber, int valueNumber) { int max = ((DexIMethod)dexCFG.getMethod()).getMaxLocals(); if (localNumber >= max) { assert false : "invalid local " + localNumber + ">" + max; @@ -1444,8 +1445,8 @@ public class DexSSABuilder extends AbstractIntRegisterMachine { * Finish populating the map of local variable information */ private void finishLocalMap(DexSSABuilder builder) { - for (Iterator it = dexCFG.iterator(); it.hasNext();) { - BasicBlock bb = (BasicBlock) it.next(); + for (Iterator it = dexCFG.iterator(); it.hasNext();) { + BasicBlock bb = it.next(); MachineState S = builder.getIn(bb); int number = bb.getNumber(); block2LocalState[number] = S.getLocals(); diff --git a/com.ibm.wala.dalvik/src/org/scandroid/domain/DomainElement.java b/com.ibm.wala.dalvik/src/org/scandroid/domain/DomainElement.java index e65496f4c..a1d9553ae 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/domain/DomainElement.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/domain/DomainElement.java @@ -40,6 +40,7 @@ package org.scandroid.domain; import org.scandroid.flow.types.FlowType; +@SuppressWarnings("rawtypes") public class DomainElement { // the code element in question // alternate framing: the /current/ fact about the element diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/InflowAnalysis.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/InflowAnalysis.java index 3694074a3..55b9eea0e 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/InflowAnalysis.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/InflowAnalysis.java @@ -80,11 +80,12 @@ import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.SSAInvokeInstruction; - +@SuppressWarnings("rawtypes") public class InflowAnalysis { private static final Logger logger = LoggerFactory.getLogger(InflowAnalysis.class); - public static + @SuppressWarnings("unchecked") + public static void addDomainElements( Map, Map,Set>> taintMap, BasicBlockInContext block, @@ -261,7 +262,7 @@ public class InflowAnalysis { for(CodeElement o:e2.getValue()) { if (e2.getKey() instanceof IKFlow) { - InstanceKey e2IK = ((IKFlow)e2.getKey()).getIK(); + InstanceKey e2IK = ((IKFlow)e2.getKey()).getIK(); if (prefixes.containsKey(e2IK)) logger.debug("Uri Prefix: " + prefixes.get(e2IK)); } diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/LocalSinkPoint.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/LocalSinkPoint.java index 6446006a2..c39b254d2 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/LocalSinkPoint.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/LocalSinkPoint.java @@ -73,6 +73,7 @@ public class LocalSinkPoint implements ISinkPoint { this.sinkFlow = sinkFlow; } + @SuppressWarnings("unchecked") @Override public Set> findSources(CGAnalysisContext ctx, TabulationResult, CGNode, DomainElement> flowResult, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/OutflowAnalysis.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/OutflowAnalysis.java index 40fe447c2..8f97b4ba0 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/OutflowAnalysis.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/OutflowAnalysis.java @@ -130,6 +130,7 @@ public class OutflowAnalysis { logger.debug("added edge from {} to {}", source, dest); } + @SuppressWarnings({ "unused", "unchecked" }) private void processArgSinks( TabulationResult, CGNode, DomainElement> flowResult, IFDSTaintDomain domain, @@ -234,6 +235,7 @@ public class OutflowAnalysis { } } + @SuppressWarnings({ "unused", "unchecked" }) private void processEntryArgs( TabulationResult, CGNode, DomainElement> flowResult, IFDSTaintDomain domain, @@ -324,6 +326,7 @@ public class OutflowAnalysis { } } + @SuppressWarnings({ "unused", "unchecked" }) private void processEntryRets( TabulationResult, CGNode, DomainElement> flowResult, IFDSTaintDomain domain, diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/StaticFieldSinkPoint.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/StaticFieldSinkPoint.java index 941381f2b..356c5a474 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/StaticFieldSinkPoint.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/StaticFieldSinkPoint.java @@ -48,8 +48,6 @@ import org.scandroid.flow.types.FlowType; import org.scandroid.flow.types.StaticFieldFlow; import org.scandroid.spec.StaticFieldSinkSpec; import org.scandroid.util.CGAnalysisContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.google.common.collect.Sets; import com.ibm.wala.classLoader.IField; @@ -63,8 +61,8 @@ import com.ibm.wala.ssa.analysis.IExplodedBasicBlock; * */ public class StaticFieldSinkPoint implements ISinkPoint { - private static final Logger logger = LoggerFactory - .getLogger(StaticFieldSinkPoint.class); +// private static final Logger logger = LoggerFactory +// .getLogger(StaticFieldSinkPoint.class); private final IField field; private final FlowType flow; @@ -84,6 +82,7 @@ public class StaticFieldSinkPoint implements ISinkPoint { * CGAnalysisContext, com.ibm.wala.dataflow.IFDS.TabulationResult, * org.scandroid.domain.IFDSTaintDomain) */ + @SuppressWarnings("unchecked") @Override public Set> findSources( CGAnalysisContext ctx, @@ -95,7 +94,6 @@ public class StaticFieldSinkPoint implements ISinkPoint { .getPossibleElements(new StaticFieldElement(field .getReference()))) { if (de.taintSource instanceof StaticFieldFlow) { - @SuppressWarnings("unchecked") StaticFieldFlow source = (StaticFieldFlow) de.taintSource; if (source.getField().equals(field)) { continue; diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/CallNoneToReturnFunction.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/CallNoneToReturnFunction.java index bdb5ff804..be73e7b41 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/CallNoneToReturnFunction.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/CallNoneToReturnFunction.java @@ -73,6 +73,7 @@ public final class CallNoneToReturnFunction implement // this effectively taints everything in the heap that we've seen before. DomainElement de = domain.getMappedObject(d); + @SuppressWarnings("unchecked") FlowType taint = de.taintSource; for (CodeElement ce : domain.codeElements() ){ diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/IFDSTaintFlowFunctionProvider.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/IFDSTaintFlowFunctionProvider.java index 13188c3dc..33f948db2 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/IFDSTaintFlowFunctionProvider.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/IFDSTaintFlowFunctionProvider.java @@ -280,7 +280,6 @@ implements IFlowFunctionMap> { UseDefSetPair p, IClassHierarchy ch) { SSAPutInstruction pi = (SSAPutInstruction)instruction; PointerKey pk; - boolean isStatic; Set elements = Sets.newHashSet(); if (pi.isStatic()) { p.uses.addAll(CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(0))); @@ -291,7 +290,6 @@ implements IFlowFunctionMap> { } else { pk = new StaticFieldKey(staticField); } - isStatic = true; } else { p.uses.addAll( CodeElement.valueElements(pa, bb.getNode(), instruction.getUse(1))); @@ -302,7 +300,6 @@ implements IFlowFunctionMap> { //MyLogger.log(LogLevel.DEBUG, " instruction: "+instruction); - isStatic = false; // add the object that holds the field that was modified // to the list of things tainted by this flow: p.defs.addAll(CodeElement.valueElements(pa, bb.getNode(), valueNumber)); @@ -332,21 +329,19 @@ implements IFlowFunctionMap> { SSAGetInstruction gi = (SSAGetInstruction)instruction; PointerKey pk; - boolean isStatic; FieldReference declaredField = gi.getDeclaredField(); if ( gi.isStatic()) { IField staticField = getStaticIField(ch, declaredField); - if (staticField == null) + if (staticField == null) { pk = null; - else + } else { pk = new StaticFieldKey(staticField); - isStatic = true; + } } else { int valueNumber = instruction.getUse(0); pk = new LocalPointerKey(bb.getNode(), valueNumber); - isStatic = false; } if (pk!=null) { @@ -407,6 +402,7 @@ implements IFlowFunctionMap> { } } + @SuppressWarnings("unchecked") public IntSet getTargets(int d1) { //System.out.println(this.toString()+".getTargets("+d1+") "+bb); //BitVectorIntSet set = new BitVectorIntSet(); @@ -428,7 +424,7 @@ implements IFlowFunctionMap> { final SSAInvokeInstruction instruction = (SSAInvokeInstruction) src.getLastInstruction(); - String signature = dest.getMethod().getSignature(); +// String signature = dest.getMethod().getSignature(); // if ( dest.getMethod().isSynthetic() ) { // System.out.println("Synthetic: "+signature); // } else { @@ -482,7 +478,7 @@ implements IFlowFunctionMap> { // TODO: Look up summary for this method, or warn if it doesn't exist. assert (src.getNode().equals(dest.getNode())); - final SSAInvokeInstruction instruction = (SSAInvokeInstruction) src.getLastInstruction(); +// final SSAInvokeInstruction instruction = (SSAInvokeInstruction) src.getLastInstruction(); // System.out.println("call to return(no callee) method inside call graph: " + src.getNode()+"--" + instruction.getDeclaredTarget()); // System.out.println("call to system: " + instruction.getDeclaredTarget()); diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/PairBasedFlowFunction.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/PairBasedFlowFunction.java index 852808be7..4fd8b3ebe 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/PairBasedFlowFunction.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/PairBasedFlowFunction.java @@ -42,8 +42,6 @@ import java.util.List; import org.scandroid.domain.CodeElement; import org.scandroid.domain.DomainElement; import org.scandroid.domain.IFDSTaintDomain; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; import com.ibm.wala.ssa.ISSABasicBlock; @@ -52,8 +50,8 @@ import com.ibm.wala.util.intset.MutableSparseIntSet; final class PairBasedFlowFunction implements IUnaryFlowFunction { - private static final Logger logger = - LoggerFactory.getLogger(PairBasedFlowFunction.class); +// private static final Logger logger = +// LoggerFactory.getLogger(PairBasedFlowFunction.class); private final List useToDefList; private final IFDSTaintDomain domain; diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/ReturnFlowFunction.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/ReturnFlowFunction.java index ae253dfd1..05d6e4c85 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/ReturnFlowFunction.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/functions/ReturnFlowFunction.java @@ -48,7 +48,6 @@ import org.scandroid.domain.ReturnElement; import com.ibm.wala.dataflow.IFDS.IUnaryFlowFunction; import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.util.intset.IntSet; -import com.ibm.wala.util.intset.MutableSparseIntSet; import com.ibm.wala.util.intset.SparseIntSet; /** diff --git a/com.ibm.wala.dalvik/src/org/scandroid/flow/types/FlowType.java b/com.ibm.wala.dalvik/src/org/scandroid/flow/types/FlowType.java index 65fddb166..4575685aa 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/flow/types/FlowType.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/flow/types/FlowType.java @@ -117,7 +117,8 @@ public abstract class FlowType { * @param b * @return */ - private boolean compareBlocks(BasicBlockInContext a, + @SuppressWarnings("unused") + private boolean compareBlocks(BasicBlockInContext a, BasicBlockInContext b) { // delegate to the defined implementation, but only if it's true. if (a.equals(b)) { diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java b/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java index 461d4ee97..6a583f54e 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferFunctionProvider.java @@ -40,7 +40,6 @@ package org.scandroid.prefixtransfer; import com.ibm.wala.dataflow.graph.AbstractMeetOperator; import com.ibm.wala.dataflow.graph.ITransferFunctionProvider; import com.ibm.wala.fixpoint.UnaryOperator; -import com.ibm.wala.fixpoint.IVariable; public class PrefixTransferFunctionProvider implements ITransferFunctionProvider { @@ -50,7 +49,6 @@ public class PrefixTransferFunctionProvider implements ITransferFunctionProvider public UnaryOperator getEdgeTransferFunction( InstanceKeySite src, InstanceKeySite dst) { - // TODO Auto-generated method stub return null; } @@ -67,14 +65,12 @@ public class PrefixTransferFunctionProvider implements ITransferFunctionProvider public byte evaluate(PrefixVariable lhs, PrefixVariable[] rhs) { // System.out.println("Evaluating meet"); boolean changed = false; - for(IVariable iv:rhs) - { - PrefixVariable rhsTPV = (PrefixVariable)iv; + + for (final PrefixVariable rhsTPV : rhs) { changed = lhs.updateAll(rhsTPV) || changed; } - if(changed) - return 1; - return 0; + + return (changed ? (byte) 1 : (byte) 0); } @Override diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferGraph.java b/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferGraph.java index e2e8e441d..ce58f1852 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferGraph.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/PrefixTransferGraph.java @@ -128,8 +128,8 @@ public class PrefixTransferGraph implements Graph { { if(k instanceof ConstantKey) { - logger.debug("ConstantKey: "+((ConstantKey)k).getValue()); - node = new ConstantString(pa.getInstanceKeyMapping().getMappedIndex(k), (String)((ConstantKey)k).getValue()); + logger.debug("ConstantKey: "+((ConstantKey)k).getValue()); + node = new ConstantString(pa.getInstanceKeyMapping().getMappedIndex(k), (String)((ConstantKey)k).getValue()); addNode(node); nodeMap.put(k, node); } diff --git a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java b/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java index 0521bf660..7fa142d6d 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/prefixtransfer/UriPrefixTransferGraph.java @@ -133,7 +133,7 @@ public class UriPrefixTransferGraph implements Graph { { if(k instanceof ConstantKey) { - node = new ConstantString(pa.getInstanceKeyMapping().getMappedIndex(k), (String)((ConstantKey)k).getValue()); + node = new ConstantString(pa.getInstanceKeyMapping().getMappedIndex(k), (String)((ConstantKey)k).getValue()); addNode(node); // logger.debug(node); nodeMap.put(k, node); diff --git a/com.ibm.wala.dalvik/src/org/scandroid/spec/AndroidSpecs.java b/com.ibm.wala.dalvik/src/org/scandroid/spec/AndroidSpecs.java index f0359cf82..486bc0002 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/spec/AndroidSpecs.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/spec/AndroidSpecs.java @@ -43,18 +43,15 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import org.scandroid.model.AppModelMethod; import org.scandroid.util.LoaderUtils; - - import com.ibm.wala.classLoader.IClass; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.cha.ClassHierarchy; import com.ibm.wala.types.ClassLoaderReference; public class AndroidSpecs implements ISpecs { - private AppModelMethod appEntrySummary; +// private AppModelMethod appEntrySummary; static String act = "Landroid/app/Activity"; static String svc = "Landroid/app/Service"; @@ -146,9 +143,9 @@ public class AndroidSpecs implements ISpecs { static MethodNamePattern httpExecute = new MethodNamePattern(http, "execute"); - private static MethodNamePattern[] callbackModelEntry = { - new MethodNamePattern("Lcom/SCanDroid/AppModel", "entry") - }; +// private static MethodNamePattern[] callbackModelEntry = { +// new MethodNamePattern("Lcom/SCanDroid/AppModel", "entry") +// }; static MethodNamePattern llLocChanged = new MethodNamePattern(ll, "onLocationChanged"); diff --git a/com.ibm.wala.dalvik/src/org/scandroid/spec/ResolveSpec.java b/com.ibm.wala.dalvik/src/org/scandroid/spec/ResolveSpec.java index 58a58b90d..74481471d 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/spec/ResolveSpec.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/spec/ResolveSpec.java @@ -40,13 +40,13 @@ package org.scandroid.spec; class ResolvedSpec { ResolvedSpec() { - AndroidSpecs spec = new AndroidSpecs(); - - for(MethodNamePattern m: spec.getEntrypointSpecs()) { - } - for(SourceSpec s: spec.getSourceSpecs()) { - } - for(ISinkSpec s: spec.getSinkSpecs()) { - } +// AndroidSpecs spec = new AndroidSpecs(); +// +// for(MethodNamePattern m: spec.getEntrypointSpecs()) { +// } +// for(SourceSpec s: spec.getSourceSpecs()) { +// } +// for(ISinkSpec s: spec.getSinkSpecs()) { +// } } } diff --git a/com.ibm.wala.dalvik/src/org/scandroid/synthmethod/SSAtoXMLVisitor.java b/com.ibm.wala.dalvik/src/org/scandroid/synthmethod/SSAtoXMLVisitor.java index 1d3e42a5f..5649d264c 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/synthmethod/SSAtoXMLVisitor.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/synthmethod/SSAtoXMLVisitor.java @@ -480,7 +480,8 @@ public class SSAtoXMLVisitor implements SSAInstruction.IVisitor { return summary; } - private String typeRefToStr(TypeReference fieldType) + @SuppressWarnings("unused") + private String typeRefToStr(TypeReference fieldType) throws UTFDataFormatException { Atom className = fieldType.getName().getClassName(); Atom pkgName = fieldType.getName().getPackage(); diff --git a/com.ibm.wala.dalvik/src/org/scandroid/util/CGAnalysisContext.java b/com.ibm.wala.dalvik/src/org/scandroid/util/CGAnalysisContext.java index 9f4222f22..1594a0389 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/util/CGAnalysisContext.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/util/CGAnalysisContext.java @@ -123,6 +123,7 @@ public class CGAnalysisContext { this(analysisContext, specifier, new ArrayList()); } + @SuppressWarnings({ "rawtypes", "unchecked" }) public CGAnalysisContext(AndroidAnalysisContext analysisContext, IEntryPointSpecifier specifier, Collection extraSummaries) throws IOException { diff --git a/com.ibm.wala.dalvik/src/org/scandroid/util/DexDotUtil.java b/com.ibm.wala.dalvik/src/org/scandroid/util/DexDotUtil.java index f6fb63f70..57aee2677 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/util/DexDotUtil.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/util/DexDotUtil.java @@ -210,7 +210,7 @@ public class DexDotUtil extends DotUtil { result.append(fontnameStr); result.append("]; \n"); - Collection dotNodes = computeDotNodes(g); + Collection dotNodes = computeDotNodes(g); outputNodes(labels, result, dotNodes); @@ -230,8 +230,8 @@ public class DexDotUtil extends DotUtil { return result; } - private static void outputNodes(NodeDecorator labels, StringBuffer result, Collection dotNodes) throws WalaException { - for (Iterator it = dotNodes.iterator(); it.hasNext();) { + private static void outputNodes(NodeDecorator labels, StringBuffer result, Collection dotNodes) throws WalaException { + for (Iterator it = dotNodes.iterator(); it.hasNext();) { outputNode(labels, result, it.next()); } } diff --git a/com.ibm.wala.dalvik/src/org/scandroid/util/EntryPoints.java b/com.ibm.wala.dalvik/src/org/scandroid/util/EntryPoints.java index d27b14733..bf9670bf1 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/util/EntryPoints.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/util/EntryPoints.java @@ -149,7 +149,8 @@ public class EntryPoints { } } - private void systemEntry(ClassHierarchy cha, AndroidAnalysisContext loader) { + @SuppressWarnings("unused") + private void systemEntry(ClassHierarchy cha, AndroidAnalysisContext loader) { String[] systemEntyPoints = { // "android.app.ActivityThread.main([Ljava/lang/String;)V" // , "com.android.server.ServerThread.run()V" @@ -279,7 +280,8 @@ public class EntryPoints { } } - private static String getTagValue(String sTag, Element eElement) { + @SuppressWarnings("unused") + private static String getTagValue(String sTag, Element eElement) { NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes(); Node nValue = (Node) nlList.item(0); @@ -322,7 +324,8 @@ public class EntryPoints { } } - private void populateEntryPoints(ClassHierarchy cha) { + @SuppressWarnings("unused") + private void populateEntryPoints(ClassHierarchy cha) { String method = null; IMethod im = null; for (String[] intent: ActivityIntentList) { @@ -349,7 +352,8 @@ public class EntryPoints { //entries.add(new DefaultEntrypoint(im, cha)); } - private String IntentToMethod(String intent) { + @SuppressWarnings("unused") + private String IntentToMethod(String intent) { if (intent.contentEquals("android.intent.action.MAIN") || intent.contentEquals("android.media.action.IMAGE_CAPTURE") || intent.contentEquals("android.media.action.VIDEO_CAPTURE") || @@ -380,7 +384,8 @@ public class EntryPoints { } } - private void outputIntentList() { + @SuppressWarnings("unused") + private void outputIntentList() { if (ActivityIntentList != null) for (int i = 0; i < ActivityIntentList.size(); i++) logger.debug("Activity Intent: " + ActivityIntentList.get(i)[0] + " ~> " + ActivityIntentList.get(i)[1]); diff --git a/com.ibm.wala.dalvik/src/org/scandroid/util/WalaGraphToJGraphT.java b/com.ibm.wala.dalvik/src/org/scandroid/util/WalaGraphToJGraphT.java index f11ca1392..014cc1d61 100644 --- a/com.ibm.wala.dalvik/src/org/scandroid/util/WalaGraphToJGraphT.java +++ b/com.ibm.wala.dalvik/src/org/scandroid/util/WalaGraphToJGraphT.java @@ -62,7 +62,8 @@ public class WalaGraphToJGraphT { private DirectedGraph jgrapht; private DijkstraShortestPath shortestpath; - public + @SuppressWarnings("rawtypes") + public WalaGraphToJGraphT(TabulationResult, CGNode, DomainElement> flowResult, IFDSTaintDomain domain, FlowType source, ISupergraph, CGNode> graph, CallGraph cg) {