Skip to content

Commit 8b93b58

Browse files
committed
Fix regex memory usage error
1 parent 68a3a91 commit 8b93b58

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

lib/ld-eventsource/impl/event_parser.rb

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,14 @@ def items
3737
event = maybe_create_event
3838
reset_buffers
3939
gen.yield event if !event.nil?
40-
else
41-
case line
42-
when /^(\w+): ?(.*)$/
43-
item = process_field($1, $2)
44-
gen.yield item if !item.nil?
45-
end
40+
elsif (colon = line.index(':'))
41+
name = line.slice(0...colon)
42+
43+
# delete the colon followed by an optional space
44+
line = line.slice(colon...).delete_prefix(':').delete_prefix(" ")
45+
46+
item = process_field(name, line)
47+
gen.yield item if !item.nil?
4648
end
4749
end
4850
end
@@ -62,8 +64,11 @@ def process_field(name, value)
6264
when "event"
6365
@type = value.to_sym
6466
when "data"
65-
@data << "\n" if @have_data
66-
@data << value
67+
if @have_data
68+
@data << "\n" << value
69+
else
70+
@data = value
71+
end
6772
@have_data = true
6873
when "id"
6974
if !value.include?("\x00")

0 commit comments

Comments
 (0)