Search in sources :

Example 11 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class ControlTaintTagStack method recalculate.

public final void recalculate() {
    if (!invalidated)
        return;
    invalidated = false;
    if (children != null) {
        taint = new Taint();
        DoubleLinkedList.Node<EnqueuedTaint> n = children.getFirst();
        while (n != null) {
            Taint t = n.entry.taint;
            if (t != null) {
                if (t.lbl != null)
                    taint.addDependency(t);
                else if (!(t.hasNoDependencies())) {
                    taint.dependencies.addAll(t.dependencies);
                }
            }
            n = n.next;
        }
    } else
        taint = null;
}
Also used : Taint(edu.columbia.cs.psl.phosphor.runtime.Taint)

Example 12 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class StringConcatObjTagITCase method testConcatAndMultiTainter.

@Test
public void testConcatAndMultiTainter() throws Exception {
    String str1 = new String("abcdefg");
    MultiTainter.taintedObject(str1, new Taint("Sensitive"));
    String str2 = str1 + "a";
    assertTrue(MultiTainter.getTaint(str2.charAt(0)) != null);
    assertTrue(MultiTainter.getTaint(str2.charAt(7)) == null);
}
Also used : Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Example 13 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class StringConcatObjTagITCase method testNewStringConcat.

@Test
public void testNewStringConcat() throws Exception {
    String str1 = new String("abcdefg");
    ((TaintedWithObjTag) ((Object) str1)).setPHOSPHOR_TAG(new Taint("sensitive"));
    String str2 = "a" + str1;
    assertTrue(MultiTainter.getTaint(str2.charAt(0)) == null);
    assertTrue(MultiTainter.getTaint(str2.charAt(1)) != null);
}
Also used : TaintedWithObjTag(edu.columbia.cs.psl.phosphor.struct.TaintedWithObjTag) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Example 14 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class ArrayLengthObjTagITCase method testArrayLengthTaintedPrimArray.

@Test
public void testArrayLengthTaintedPrimArray() throws Exception {
    int i = MultiTainter.taintedInt(5, "foo");
    Taint t = MultiTainter.getTaint(i);
    int[] ar = new int[i];
    Taint r = MultiTainter.getTaint(ar.length);
    if (Configuration.ARRAY_LENGTH_TRACKING)
        assertEquals(t.lbl, r.lbl);
    else
        assertNull(r);
}
Also used : Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Example 15 with Taint

use of edu.columbia.cs.psl.phosphor.runtime.Taint in project phosphor by gmu-swe.

the class ArrayLengthObjTagITCase method testTaintedIndexStore.

@Test
public void testTaintedIndexStore() throws Exception {
    int i = MultiTainter.taintedInt(5, "foo");
    Taint t = MultiTainter.getTaint(i);
    int[] ar = new int[10];
    ar[i] = 10;
    Taint r = MultiTainter.getTaint(ar[5]);
    if (Configuration.ARRAY_LENGTH_TRACKING)
        assertEquals(t.lbl, r.lbl);
    else
        assertNull(r);
    String[] s = new String[10];
    s[i] = "bar";
    r = (Taint) MultiTainter.getTaint(s[5]);
    if (Configuration.ARRAY_LENGTH_TRACKING)
        assertEquals(t.lbl, r.lbl);
    else
        assertNull(r);
}
Also used : Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Taint(edu.columbia.cs.psl.phosphor.runtime.Taint) Test(org.junit.Test)

Aggregations

Taint (edu.columbia.cs.psl.phosphor.runtime.Taint)30 Test (org.junit.Test)20 TaintedWithObjTag (edu.columbia.cs.psl.phosphor.struct.TaintedWithObjTag)7 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)1