summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Christopher Anderson <jchris@apache.org>2009-03-06 16:45:45 +0000
committerJohn Christopher Anderson <jchris@apache.org>2009-03-06 16:45:45 +0000
commitca79ad7b3104ba4a55006a358b3b7ff2f0c060e8 (patch)
tree53d34942f4640fe123612aa698f97e124ccb4c81 /src
parent45019979f3a06300139aeef72e7ef6f3f4d5833f (diff)
validate reduce view list queries, make query_parse_error response code 400
thanks Jan, thanks Jason Davies. closes COUCHDB-283 git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@750969 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/couchdb/couch_httpd.erl2
-rw-r--r--src/couchdb/couch_httpd_show.erl1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl
index 49a86289..44ae0bb1 100644
--- a/src/couchdb/couch_httpd.erl
+++ b/src/couchdb/couch_httpd.erl
@@ -386,6 +386,8 @@ end_json_response(Resp) ->
send_error(Req, bad_request) ->
send_error(Req, 400, <<"bad_request">>, <<>>);
+send_error(Req, {query_parse_error, Reason}) ->
+ send_error(Req, 400, <<"query_parse_error">>, Reason);
send_error(Req, {bad_request, Reason}) ->
send_error(Req, 400, <<"bad_request">>, Reason);
send_error(Req, not_found) ->
diff --git a/src/couchdb/couch_httpd_show.erl b/src/couchdb/couch_httpd_show.erl
index 6fda61b3..5a03d9de 100644
--- a/src/couchdb/couch_httpd_show.erl
+++ b/src/couchdb/couch_httpd_show.erl
@@ -98,6 +98,7 @@ send_view_list_response(Lang, ListSrc, ViewName, DesignId, Req, Db, Keys) ->
{not_found, _Reason} ->
case couch_view:get_reduce_view(Db, DesignId, ViewName, Stale) of
{ok, ReduceView, Group} ->
+ couch_httpd_view:parse_view_query(Req, Keys, true, true), % just for validation
case Reduce of
false ->
MapView = couch_view:extract_map_view(ReduceView),