Class Taint

  • All Implemented Interfaces:
    it.unive.lisa.analysis.BaseLattice<Taint>, it.unive.lisa.analysis.Lattice<Taint>, it.unive.lisa.analysis.nonrelational.NonRelationalDomain<Taint,​it.unive.lisa.symbolic.value.ValueExpression,​it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Taint>>, it.unive.lisa.analysis.nonrelational.NonRelationalElement<Taint,​it.unive.lisa.symbolic.value.ValueExpression,​it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Taint>>, it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain<Taint>, it.unive.lisa.analysis.nonrelational.value.NonRelationalValueDomain<Taint>, it.unive.lisa.analysis.SemanticEvaluator, it.unive.lisa.util.representation.StructuredObject

    public class Taint
    extends BaseTaint<Taint>
    A BaseTaint implementation with only two level of taintedness: clean and tainted. As such, this class distinguishes values that are always clean from values that are tainted in at least one execution path.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain

        it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain.EvaluationVisitor<T extends it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain<T>>
    • Constructor Summary

      Constructors 
      Constructor Description
      Taint()
      Builds a new instance of taint.
    • Constructor Detail

      • Taint

        public Taint()
        Builds a new instance of taint.
    • Method Detail

      • tainted

        protected Taint tainted()
        Description copied from class: BaseTaint
        Yields the domain element that represents tainted values.
        Specified by:
        tainted in class BaseTaint<Taint>
        Returns:
        the tainted domain element
      • clean

        protected Taint clean()
        Description copied from class: BaseTaint
        Yields the domain element that represents clean values.
        Specified by:
        clean in class BaseTaint<Taint>
        Returns:
        the clean domain element
      • isPossiblyTainted

        public boolean isPossiblyTainted()
        Description copied from class: BaseTaint
        Yields true if this instance represents information that is definitely tainted in at least one execution path.
        Specified by:
        isPossiblyTainted in class BaseTaint<Taint>
        Returns:
        true if that condition holds
      • isAlwaysTainted

        public boolean isAlwaysTainted()
        Description copied from class: BaseTaint
        Yields true if this instance represents information that is definitely tainted across all execution paths.
        Specified by:
        isAlwaysTainted in class BaseTaint<Taint>
        Returns:
        true if that condition holds
      • representation

        public it.unive.lisa.util.representation.StructuredRepresentation representation()
      • top

        public Taint top()
      • bottom

        public Taint bottom()
      • lubAux

        public Taint lubAux​(Taint other)
                     throws it.unive.lisa.analysis.SemanticException
        Throws:
        it.unive.lisa.analysis.SemanticException
      • wideningAux

        public Taint wideningAux​(Taint other)
                          throws it.unive.lisa.analysis.SemanticException
        Throws:
        it.unive.lisa.analysis.SemanticException
      • lessOrEqualAux

        public boolean lessOrEqualAux​(Taint other)
                               throws it.unive.lisa.analysis.SemanticException
        Throws:
        it.unive.lisa.analysis.SemanticException
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface it.unive.lisa.analysis.BaseLattice<Taint>
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Specified by:
        equals in interface it.unive.lisa.analysis.BaseLattice<Taint>
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Specified by:
        toString in interface it.unive.lisa.analysis.BaseLattice<Taint>
        Overrides:
        toString in class java.lang.Object