lib/contrast/agent/assess/policy/propagator/database_write.rb in contrast-agent-3.14.0 vs lib/contrast/agent/assess/policy/propagator/database_write.rb in contrast-agent-3.15.0
- old
+ new
@@ -29,24 +29,26 @@
arg.each_pair do |key, value|
next unless value
next if known_tainted&.include?(key)
+ properties = Contrast::Agent::Assess::Tracker.properties(value)
+ next unless properties
+
# TODO: RUBY-540 handle sanitization, handle nested objects
Contrast::Agent::Assess::Policy::PropagationMethod.apply_tags(propagation_node, value)
- value.cs__properties.build_event(propagation_node, value, preshift.object, target, preshift.args)
+ properties.build_event(propagation_node, value, preshift.object, target, preshift.args)
next unless tracked_value?(value)
- tainted_columns[key] = value.cs__properties
+ tainted_columns[key] = properties
end
end
return if tainted_columns.empty?
if known_tainted
known_tainted.concat(tainted_columns.keys)
else
- class_type.send(:include, Contrast::Extension::Assess::AssessExtension) unless class_type < Contrast::Extension::Assess::AssessExtension
ASSESS.tainted_columns[class_name] = tainted_columns.keys
end
Contrast::Agent::Assess::Policy::DynamicSourceFactory.create_sources class_type, tainted_columns
end