summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/network/http/handler.rb2
-rwxr-xr-xspec/unit/network/http/mongrel/rest.rb5
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/puppet/network/http/handler.rb b/lib/puppet/network/http/handler.rb
index 9528d39a6..c6b809d30 100644
--- a/lib/puppet/network/http/handler.rb
+++ b/lib/puppet/network/http/handler.rb
@@ -182,6 +182,8 @@ module Puppet::Network::HTTP::Handler
def decode_params(params)
params.inject({}) do |result, ary|
param, value = ary
+ next result if param.blank?
+
param = param.to_sym
# These shouldn't be allowed to be set by clients
diff --git a/spec/unit/network/http/mongrel/rest.rb b/spec/unit/network/http/mongrel/rest.rb
index 5a5d2cfec..abd573a25 100755
--- a/spec/unit/network/http/mongrel/rest.rb
+++ b/spec/unit/network/http/mongrel/rest.rb
@@ -92,6 +92,11 @@ describe "Puppet::Network::HTTP::MongrelREST" do
@request.stubs(:params).returns({})
end
+ it "should skip empty parameter values" do
+ @request.expects(:params).returns('QUERY_STRING' => "&=")
+ lambda { @handler.params(@request) }.should_not raise_error
+ end
+
it "should include the HTTP request parameters, with the keys as symbols" do
@request.expects(:params).returns('QUERY_STRING' => 'foo=baz&bar=xyzzy')
result = @handler.params(@request)