diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-06 17:54:58 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-06 17:54:58 +0100 |
| commit | bf99e4938e11ea650045aada6b3876588eccfab3 (patch) | |
| tree | da404d4b4722d6535a4b163faf52f15ab66eb696 | |
| parent | 15fcf839006eabb19c03082a12298b7f9475af28 (diff) | |
| download | rabbitmq-server-git-bf99e4938e11ea650045aada6b3876588eccfab3.tar.gz | |
don't follow symlinks
| -rw-r--r-- | src/rabbit_misc.erl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index ae28722ab2..0b39a20927 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -749,7 +749,7 @@ recursive_delete(Files) -> end, ok, Files). recursive_delete1(Path) -> - case filelib:is_dir(Path) of + case filelib:is_dir(Path) and not(is_symlink(Path)) of false -> case file:delete(Path) of ok -> ok; {error, enoent} -> ok; %% Path doesn't exist anyway @@ -777,6 +777,12 @@ recursive_delete1(Path) -> end end. +is_symlink(Name) -> + case file:read_link(Name) of + {ok, _} -> true; + _ -> false + end. + recursive_copy(Src, Dest) -> case filelib:is_dir(Src) of false -> case file:copy(Src, Dest) of |
