fix(ft): handle empty filepath in fs exporter API
Fixes EMQX-9973
This commit is contained in:
parent
d22541e8b3
commit
cb14a3e08b
|
@ -167,7 +167,7 @@ parse_filepath(PathBin) ->
|
||||||
throw({invalid, PathBin})
|
throw({invalid, PathBin})
|
||||||
end,
|
end,
|
||||||
PathComponents = filename:split(PathBin),
|
PathComponents = filename:split(PathBin),
|
||||||
case lists:any(fun is_special_component/1, PathComponents) of
|
case PathComponents == [] orelse lists:any(fun is_special_component/1, PathComponents) of
|
||||||
false ->
|
false ->
|
||||||
filename:join(PathComponents);
|
filename:join(PathComponents);
|
||||||
true ->
|
true ->
|
||||||
|
|
|
@ -140,10 +140,7 @@ t_download_transfer(Config) ->
|
||||||
request(
|
request(
|
||||||
get,
|
get,
|
||||||
uri(["file_transfer", "file"]) ++
|
uri(["file_transfer", "file"]) ++
|
||||||
query(#{
|
query(#{fileref => FileId, node => <<"nonode@nohost">>})
|
||||||
fileref => FileId,
|
|
||||||
node => <<"nonode@nohost">>
|
|
||||||
})
|
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -152,10 +149,25 @@ t_download_transfer(Config) ->
|
||||||
request(
|
request(
|
||||||
get,
|
get,
|
||||||
uri(["file_transfer", "file"]) ++
|
uri(["file_transfer", "file"]) ++
|
||||||
query(#{
|
query(#{fileref => <<"unknown_file">>, node => node()})
|
||||||
fileref => <<"unknown_file">>,
|
)
|
||||||
node => node()
|
),
|
||||||
})
|
|
||||||
|
?assertMatch(
|
||||||
|
{ok, 404, #{<<"message">> := <<"Invalid query parameter", _/bytes>>}},
|
||||||
|
request_json(
|
||||||
|
get,
|
||||||
|
uri(["file_transfer", "file"]) ++
|
||||||
|
query(#{fileref => <<>>, node => node()})
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
?assertMatch(
|
||||||
|
{ok, 404, #{<<"message">> := <<"Invalid query parameter", _/bytes>>}},
|
||||||
|
request_json(
|
||||||
|
get,
|
||||||
|
uri(["file_transfer", "file"]) ++
|
||||||
|
query(#{fileref => <<"/etc/passwd">>, node => node()})
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue