You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2024/06/25 05:44:58 UTC
(couchdb) 01/01: Fix _scheduler/docs/... path 500 errors
This is an automated email from the ASF dual-hosted git repository.
vatamane pushed a commit to branch fix-replicator-scheduler-docs-api
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit f7354815a7c79f9545c2c1da787fe0ae08982a3c
Author: Nick Vatamaniuc <va...@gmail.com>
AuthorDate: Tue Jun 25 01:19:16 2024 -0400
Fix _scheduler/docs/... path 500 errors
Return a 400 response for _scheduler/docs/foo or
_scheduler/docs/w/x/_replicator/y/z paths instead of a 500 error.
Fix: #5089
---
src/couch_replicator/src/couch_replicator_httpd.erl | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/couch_replicator/src/couch_replicator_httpd.erl b/src/couch_replicator/src/couch_replicator_httpd.erl
index 56f1cdeab..edfadbbac 100644
--- a/src/couch_replicator/src/couch_replicator_httpd.erl
+++ b/src/couch_replicator/src/couch_replicator_httpd.erl
@@ -168,8 +168,12 @@ parse_unquoted_docs_path([_, _ | _] = Unquoted) ->
[?REPDB] ->
{db_only, filename:join(BeforeRDb ++ [?REPDB])};
[?REPDB, DocId] ->
- {db_and_doc, filename:join(BeforeRDb ++ [?REPDB]), DocId}
- end.
+ {db_and_doc, filename:join(BeforeRDb ++ [?REPDB]), DocId};
+ [_ | _] ->
+ {error, invalid}
+ end;
+parse_unquoted_docs_path(Path) when is_list(Path) ->
+ {error, invalid}.
-ifdef(TEST).
@@ -184,7 +188,10 @@ unquoted_scheduler_docs_path_test_() ->
{{db_only, <<"a/b/_replicator">>}, [<<"a">>, <<"b">>, ?REPDB]},
{{db_and_doc, <<"_replicator">>, <<"x">>}, [?REPDB, <<"x">>]},
{{db_and_doc, <<"a/_replicator">>, <<"x">>}, [<<"a">>, ?REPDB, <<"x">>]},
- {{error, invalid}, [<<"a/_replicator">>, <<"x">>]}
+ {{error, invalid}, [<<"a/_replicator">>, <<"x">>]},
+ {{error, invalid}, [<<"foo">>]},
+ {{error, invalid}, [<<"a">>, <<"b">>, ?REPDB, <<"z">>, <<"w">>]},
+ {{error, invalid}, [?REPDB, <<"z">>, <<"w">>]}
]
].