Search in sources :

Example 1 with MultiDTaintedArrayWithObjTag

use of edu.columbia.cs.psl.phosphor.struct.multid.MultiDTaintedArrayWithObjTag in project phosphor by gmu-swe.

the class ReflectionMasker method fixAllArgsUninst.

public static MethodInvoke fixAllArgsUninst(Method m, Object owner, Object[] in, boolean isObjTags) {
    MethodInvoke ret = new MethodInvoke();
    if (m == null) {
        ret.a = in;
        ret.o = owner;
        ret.m = m;
        return ret;
    }
    if (// && Instrumenter.isIgnoredMethodFromOurAnalysis(m.getDeclaringClass().getName().replace(".", "/"), m.getName(), Type.getMethodDescriptor(m)))
    Configuration.WITH_SELECTIVE_INST) {
        // ret.m = getUnTaintMethod(m, isObjTags);
        ret.m = getOrigMethod(m, isObjTags);
        ret.o = owner;
        ret.a = in;
        if (ret.a != null && ret.a.getClass().isArray() && ret.a.getClass().getComponentType() == Object.class)
            for (int i = 0; i < ret.a.length; i++) {
                if (ret.a[i] instanceof LazyArrayIntTags) {
                    ret.a[i] = ((LazyArrayIntTags) ret.a[i]).getVal();
                } else if (ret.a[i] instanceof MultiDTaintedArrayWithObjTag) {
                    ret.a[i] = ((MultiDTaintedArrayWithObjTag) ret.a[i]).getVal();
                }
            }
    } else {
        ret = fixAllArgs(m, owner, in, isObjTags);
    }
    return ret;
}
Also used : MultiDTaintedArrayWithObjTag(edu.columbia.cs.psl.phosphor.struct.multid.MultiDTaintedArrayWithObjTag) LazyArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyArrayIntTags) MethodInvoke(edu.columbia.cs.psl.phosphor.struct.MethodInvoke)

Example 2 with MultiDTaintedArrayWithObjTag

use of edu.columbia.cs.psl.phosphor.struct.multid.MultiDTaintedArrayWithObjTag in project phosphor by gmu-swe.

the class ReflectionMasker method fixAllArgsUninst.

public static MethodInvoke fixAllArgsUninst(Method m, Object owner, Object[] in, ControlTaintTagStack ctrl) {
    MethodInvoke ret = new MethodInvoke();
    if (m == null) {
        ret.a = in;
        ret.o = owner;
        ret.m = m;
        return ret;
    }
    ret.m = getOrigMethod(m, true);
    ret.o = owner;
    ret.a = in;
    for (int i = 0; i < ret.a.length; i++) {
        if (ret.a[i] instanceof LazyArrayIntTags) {
            ret.a[i] = ((LazyArrayIntTags) ret.a[i]).getVal();
        } else if (ret.a[i] instanceof MultiDTaintedArrayWithObjTag) {
            ret.a[i] = ((MultiDTaintedArrayWithObjTag) ret.a[i]).getVal();
        }
    }
    return ret;
}
Also used : MultiDTaintedArrayWithObjTag(edu.columbia.cs.psl.phosphor.struct.multid.MultiDTaintedArrayWithObjTag) LazyArrayIntTags(edu.columbia.cs.psl.phosphor.struct.LazyArrayIntTags) MethodInvoke(edu.columbia.cs.psl.phosphor.struct.MethodInvoke)

Aggregations

LazyArrayIntTags (edu.columbia.cs.psl.phosphor.struct.LazyArrayIntTags)2 MethodInvoke (edu.columbia.cs.psl.phosphor.struct.MethodInvoke)2 MultiDTaintedArrayWithObjTag (edu.columbia.cs.psl.phosphor.struct.multid.MultiDTaintedArrayWithObjTag)2