Actions
Bug #1314
closedCGI doesnt properly handle empty arguments
Status:
Closed
Assignee:
ruby -v:
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
Description
=begin
In case you are trying to initialise with CGI.new, on non-interactive terminal, Ruby fails with:
/usr/lib64/ruby/1.8/cgi.rb:1092:in readlines': Invalid argument (Errno::EINVAL) from /usr/lib64/ruby/1.8/cgi.rb:1092:in
read_from_cmdline'
from /usr/lib64/ruby/1.8/cgi.rb:1129:in initialize_query' from /usr/lib64/ruby/1.8/cgi.rb:2281:in
initialize'
I fixed it by modifying read_from_cmdline a bit:
# offline mode. read name=value pairs on standard input.
def read_from_cmdline
require "shellwords"
string = unless ARGV.empty?
ARGV.join(' ')
else
if STDIN.tty?
STDERR.print(
%|(offline mode: enter name=value pairs on standard input)\n|
)
end
array = nil
begin
readlines
rescue
end
if not array.nil?
array.join(' ').gsub(/\n/n, '')
else
""
end
end.gsub(/\\=/n, '%3D').gsub(/\\&/n, '%26')
words = Shellwords.shellwords(string)
if words.find{|x| /=/n.match(x) }
words.join('&')
else
words.join('+')
end
end
Sorry that it isnt patch, I just edited cgi.rb found from my system...
=end
Actions
Like0
Like0Like0Like0Like0