diff options
author | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2014-04-15 04:14:46 -0700 |
---|---|---|
committer | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2014-04-15 04:14:46 -0700 |
commit | 687a2b70a1258f7e9129ecf38c9b91f65d3a6ec8 (patch) | |
tree | e79075b30b4f0e52b043a79dc3d62ecd05a23c99 | |
parent | 58cdde4d638270d3ad37e770ece2825ec3613520 (diff) | |
download | dinobot-687a2b70a1258f7e9129ecf38c9b91f65d3a6ec8.tar.gz dinobot-687a2b70a1258f7e9129ecf38c9b91f65d3a6ec8.tar.xz |
Fix memory leaks (don't intern user input).
-rw-r--r-- | dinobot.rb | 6 | ||||
-rw-r--r-- | module.rb | 2 |
2 files changed, 6 insertions, 2 deletions
@@ -78,7 +78,11 @@ module Dinobot def parse_command(user, channel, command, prev=nil) command, remainder = command.split(' | ', 2) - mod = command.scan(/\A\S+/).first.downcase.intern + mod = command.scan(/\A\S+/).first.downcase + + return unless @modules.keys.map { |x| x.to_s }.include?(mod) + + mod = mod.intern if prev.nil? methods = @modules[mod].call(user, channel, command) @@ -11,7 +11,7 @@ module Dinobot def call(user, channel, message) command, argument = message.split(' ', 3)[1..2] - if @commands.include?(command.intern) + if @commands.map { |x| x.to_s }.include?(command) send(command, user, channel, argument) end end |