Fix trailing escaped space

This commit is contained in:
Michael Kozono 2017-09-20 14:41:42 -07:00
parent cb591f86e4
commit 3fde6f6806
1 changed files with 11 additions and 0 deletions

View File

@ -115,6 +115,7 @@ module Gitlab
when '0'..'9', 'a'..'f' then
state = :value_normal_escape_hex
hex_buffer = char
when ' ' then state = :value_normal_escape_space; value << char
else state = :value_normal; value << char
end
when :value_normal_escape_hex then
@ -124,6 +125,16 @@ module Gitlab
value << "#{hex_buffer}#{char}".to_i(16).chr
else raise "DN badly formed"
end
when :value_normal_escape_space then
case char
when '\\' then state = :value_normal_escape
when ',' then
state = :key
yield key.string.strip, value.string # Don't strip trailing escaped space!
key = StringIO.new
value = StringIO.new;
else value << char
end
when :value_quoted then
case char
when '\\' then state = :value_quoted_escape