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;
}
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);
}
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);
}
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);
}
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);
}
Aggregations