当前位置: 首页>>代码示例>>Java>>正文


Java LDC.getValue方法代码示例

本文整理汇总了Java中org.apache.bcel.generic.LDC.getValue方法的典型用法代码示例。如果您正苦于以下问题:Java LDC.getValue方法的具体用法?Java LDC.getValue怎么用?Java LDC.getValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.bcel.generic.LDC的用法示例。


在下文中一共展示了LDC.getValue方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: visitLDC

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC ldc) {
    Taint taint = new Taint(Taint.State.SAFE);
    Object value = ldc.getValue(cpg);
    if (value instanceof String) {
        taint.setConstantValue((String) value);
    }
    if (FindSecBugsGlobalConfig.getInstance().isDebugTaintState()) {
        if (value instanceof String) {
            taint.setDebugInfo("\"" + value + "\"");
        } else {
            taint.setDebugInfo("LDC " + ldc.getType(cpg).getSignature());
        }
    }
    getFrame().pushValue(taint);
}
 
开发者ID:blackarbiter,项目名称:Android_Code_Arbiter,代码行数:17,代码来源:TaintFrameModelingVisitor.java

示例2: updateStringAppendState

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private StringAppendState updateStringAppendState(Location location, ConstantPoolGen cpg, StringAppendState stringAppendState)
        {
    InstructionHandle handle = location.getHandle();
    Instruction ins = handle.getInstruction();
    if (!isConstantStringLoad(location, cpg)) {
        throw new IllegalArgumentException("instruction must be LDC");
    }

    LDC load = (LDC) ins;
    Object value = load.getValue(cpg);
    String stringValue = ((String) value).trim();
    if (stringValue.startsWith(",") || stringValue.endsWith(","))
        stringAppendState.setSawComma(handle);
    if (isCloseQuote(stringValue) && stringAppendState.getSawOpenQuote(handle))
        stringAppendState.setSawCloseQuote(handle);
    if (isOpenQuote(stringValue))
        stringAppendState.setSawOpenQuote(handle);

    return stringAppendState;
}
 
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:21,代码来源:FindSqlInjection.java

示例3: visitLDC

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC obj) {
    Object constantValue = obj.getValue(cpg);
    ValueNumber value;
    if (constantValue instanceof ConstantClass) {
        ConstantClass constantClass = (ConstantClass) constantValue;
        String className = constantClass.getBytes(cpg.getConstantPool());
        value = factory.getClassObjectValue(className);
    } else {
        value = constantValueMap.get(constantValue);
        if (value == null) {
            value = factory.createFreshValue(ValueNumber.CONSTANT_VALUE);
            constantValueMap.put(constantValue, value);

            // Keep track of String constants

            if (constantValue instanceof String) {
                stringConstantMap.put(value, (String) constantValue);
            }
        }
    }
    getFrame().pushValue(value);
}
 
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:24,代码来源:ValueNumberFrameModelingVisitor.java

示例4: analyzeMethod

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private void analyzeMethod(Method m, ClassContext classContext) throws CFGBuilderException{
    JavaClass clazz = classContext.getJavaClass();
    ConstantPoolGen cpg = classContext.getConstantPoolGen();
    CFG cfg = classContext.getCFG(m);

    for (Iterator<Location> i = cfg.locationIterator(); i.hasNext(); ) {
        Location loc = i.next();
        Instruction inst = loc.getHandle().getInstruction();

        if (inst instanceof INVOKEVIRTUAL) {
            INVOKEVIRTUAL invoke = (INVOKEVIRTUAL)inst;
            if( "java.lang.StringBuilder".equals(invoke.getClassName(cpg)) && "append".equals(invoke.getMethodName(cpg))) {
                Instruction prev = loc.getHandle().getPrev().getInstruction();

                if (prev instanceof LDC) {
                    LDC ldc = (LDC)prev;
                    Object value = ldc.getValue(cpg);

                    if (value instanceof String) {
                        String v = (String)value;

                        if ("redirect:".equals(v)) {
                            BugInstance bug = new BugInstance(this, SPRING_UNVALIDATED_REDIRECT_TYPE, Priorities.NORMAL_PRIORITY);
                            bug.addClass(clazz).addMethod(clazz,m).addSourceLine(classContext,m,loc);
                            reporter.reportBug(bug);
                        }
                    }
                }
            }
        }
    }
}
 
开发者ID:blackarbiter,项目名称:Android_Code_Arbiter,代码行数:33,代码来源:SpringUnvalidatedRedirectDetector.java

示例5: visitLDC

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC obj) {
    Type type = obj.getType(getCPG());
    if (isString(type)) {
        Object value = obj.getValue(getCPG());
        if (value instanceof String && ((String)value).length() == 0)
            pushValue( emptyStringTypeInstance);
        else pushValue( staticStringTypeInstance);
    }
    else pushValue(type);
}
 
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:12,代码来源:FindRefComparison.java

示例6: isConstantStringLoad

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private boolean isConstantStringLoad(Location location, ConstantPoolGen cpg)  {
    Instruction ins = location.getHandle().getInstruction();
    if (ins instanceof LDC) {
        LDC load = (LDC) ins;
        Object value = load.getValue(cpg);
        if (value instanceof String) {
            return true;
        }
    }

    return false;
}
 
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:13,代码来源:FindSqlInjection.java

示例7: visitLDC

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC obj) {
    Object value = obj.getValue(getCPG());
    Constant c = new Constant(value);
    getFrame().pushValue(c);
}
 
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:7,代码来源:ConstantFrameModelingVisitor.java

示例8: registerLDCValueSource

import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private void registerLDCValueSource(Location location) throws DataflowAnalysisException {

        LDC instruction = (LDC) location.getHandle().getInstruction();
        Object constantValue = instruction.getValue(cpg);
        registerConstantSource(location, constantValue);
    }
 
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:7,代码来源:ForwardTypeQualifierDataflowAnalysis.java


注:本文中的org.apache.bcel.generic.LDC.getValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。