示例#1
0
        public override void VisitAssign(AssignPoint p)
        {
            var source = p.ROperand.Value;
            var target = p.LOperand.LValue;

            if (target == null || source == null)
            {
                //Variable has to be LValue
                return;
            }

            var sourceTaint = getTaint(source);

            var finalPropagation = sourceTaint;

            setTaint(target, finalPropagation);
        }
示例#2
0
        public override void VisitAssign(AssignPoint p)
        {
            var source      = p.LOperand.LValue;
            var targetPoint = p.ROperand as LValuePoint;

            if (source == null || targetPoint == null || targetPoint.LValue == null)
            {
                //Variable has to be LValue
                return;
            }

            var target = targetPoint.LValue;

            var sourcePropagation = getPropagation(source);
            var targetPropagation = getPropagation(target);

            var finalPropagation = targetPropagation.PropagateTo(sourcePropagation);

            setPropagation(target, finalPropagation);
        }