private void processInvokeInterface() { String className = getClassConstantOperand(); String methodName = getNameConstantOperand(); String methodSig = getSigConstantOperand(); if (Values.SLASHED_JAVA_UTIL_MAP.equals(className) && "put".equals(methodName) && SignatureBuilder.SIG_TWO_OBJECTS_TO_OBJECT.equals(methodSig)) { if (stack.getStackDepth() > 1) { OpcodeStack.Item itm = stack.getStackItem(1); String pushedSig = itm.getSignature(); if (pushedSig.startsWith(Values.SIG_ARRAY_PREFIX)) { foundBugFor(mapBugs); } } } else if (Values.SLASHED_JAVA_UTIL_SET.equals(className) && "add".equals(methodName) && SignatureBuilder.SIG_OBJECT_TO_BOOLEAN.equals(methodSig)) { if (stack.getStackDepth() > 0) { OpcodeStack.Item itm = stack.getStackItem(0); String pushedSig = itm.getSignature(); if (pushedSig.startsWith(Values.SIG_ARRAY_PREFIX)) { foundBugFor(setBugs); } } } else if (Values.SLASHED_JAVA_UTIL_LIST.equals(className) && "contains".equals(methodName) && SignatureBuilder.SIG_OBJECT_TO_BOOLEAN.equals(methodSig) && (stack.getStackDepth() > 0)) { OpcodeStack.Item itm = stack.getStackItem(0); String pushedSig = itm.getSignature(); if (pushedSig.startsWith(Values.SIG_ARRAY_PREFIX)) { foundBugFor(null); } } }
private void processInvokeInterface() { String className = getClassConstantOperand(); String methodName = getNameConstantOperand(); String methodSig = getSigConstantOperand(); if (Values.SLASHED_JAVA_UTIL_MAP.equals(className) && "put".equals(methodName) && SignatureBuilder.SIG_TWO_OBJECTS_TO_OBJECT.equals(methodSig)) { if (stack.getStackDepth() > 1) { OpcodeStack.Item itm = stack.getStackItem(1); String pushedSig = itm.getSignature(); if (pushedSig.startsWith(Values.SIG_ARRAY_PREFIX)) { foundBugFor(mapBugs); } } } else if (Values.SLASHED_JAVA_UTIL_SET.equals(className) && "add".equals(methodName) && SignatureBuilder.SIG_OBJECT_TO_BOOLEAN.equals(methodSig)) { if (stack.getStackDepth() > 0) { OpcodeStack.Item itm = stack.getStackItem(0); String pushedSig = itm.getSignature(); if (pushedSig.startsWith(Values.SIG_ARRAY_PREFIX)) { foundBugFor(setBugs); } } } else if (Values.SLASHED_JAVA_UTIL_LIST.equals(className) && "contains".equals(methodName) && SignatureBuilder.SIG_OBJECT_TO_BOOLEAN.equals(methodSig) && (stack.getStackDepth() > 0)) { OpcodeStack.Item itm = stack.getStackItem(0); String pushedSig = itm.getSignature(); if (pushedSig.startsWith(Values.SIG_ARRAY_PREFIX)) { foundBugFor(null); } } }