* Fix #1870 - Strip control characters out of strings in AtomSerializer * Adjust according to comment by @alpaca-tc
This commit is contained in:
		| @ -3,6 +3,8 @@ | ||||
| class AtomSerializer | ||||
|   include RoutingHelper | ||||
|  | ||||
|   INVALID_XML_CHARS = /[^\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]/ | ||||
|  | ||||
|   class << self | ||||
|     def render(element) | ||||
|       document = Ox::Document.new(version: '1.0') | ||||
| @ -311,11 +313,15 @@ class AtomSerializer | ||||
|  | ||||
|   def append_element(parent, name, content = nil, attributes = {}) | ||||
|     element = Ox::Element.new(name) | ||||
|     attributes.each { |k, v| element[k] = v.to_s } | ||||
|     element << content.to_s unless content.nil? | ||||
|     attributes.each { |k, v| element[k] = sanitize_str(v) } | ||||
|     element << sanitize_str(content) unless content.nil? | ||||
|     parent  << element | ||||
|   end | ||||
|  | ||||
|   def sanitize_str(raw_str) | ||||
|     raw_str.to_s.gsub(INVALID_XML_CHARS, '') | ||||
|   end | ||||
|  | ||||
|   def add_namespaces(parent) | ||||
|     parent['xmlns']          = TagManager::XMLNS | ||||
|     parent['xmlns:thr']      = TagManager::THR_XMLNS | ||||
|  | ||||
		Reference in New Issue
	
	Block a user