diff options
author | Michael Klishin <klishinm@vmware.com> | 2022-01-11 22:13:05 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-11 22:13:05 +0300 |
commit | c9c03d275c95631bcd8fb17bffd4b10f7b37a230 (patch) | |
tree | a0ba14d842b7563ea2cd00b600187015ffd744b7 | |
parent | 06d7c3fa84f79b510b17789582d09336404032e0 (diff) | |
parent | 95a60fc3be2fdf093ed4609249013c26f75ae8ef (diff) | |
download | rabbitmq-server-git-c9c03d275c95631bcd8fb17bffd4b10f7b37a230.tar.gz |
Merge pull request #3980 from rabbitmq/gh-3936-followup
Replace one use of filelib:is_regular/1
-rw-r--r-- | deps/rabbit/src/rabbit_config.erl | 2 | ||||
-rw-r--r-- | deps/rabbit_common/src/rabbit_misc.erl | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/deps/rabbit/src/rabbit_config.erl b/deps/rabbit/src/rabbit_config.erl index 1198035a7a..5cda2f9e45 100644 --- a/deps/rabbit/src/rabbit_config.erl +++ b/deps/rabbit/src/rabbit_config.erl @@ -35,7 +35,7 @@ get_advanced_config() -> -spec config_files() -> [config_location()]. config_files() -> ConfFiles = [filename:absname(File) || File <- get_confs(), - filelib:is_regular(File)], + rabbit_misc:is_regular_file(File)], AdvancedFiles = case get_advanced_config() of none -> []; FileName -> [filename:absname(FileName)] diff --git a/deps/rabbit_common/src/rabbit_misc.erl b/deps/rabbit_common/src/rabbit_misc.erl index 98eb3b3f7d..e94d2f3a79 100644 --- a/deps/rabbit_common/src/rabbit_misc.erl +++ b/deps/rabbit_common/src/rabbit_misc.erl @@ -81,6 +81,7 @@ -export([get_gc_info/1]). -export([group_proplists_by/2]). -export([raw_read_file/1]). +-export([is_regular_file/1]). %% Horrible macro to use in guards -define(IS_BENIGN_EXIT(R), @@ -1421,6 +1422,16 @@ raw_read_file(File) -> error:{badmatch, Error} -> Error end. +-spec is_regular_file(Name) -> boolean() when + Name :: file:filename_all(). +is_regular_file(Name) -> + % Note: this works around the win32 file leak in file:read_file/1 + % https://github.com/erlang/otp/issues/5527 + case file:read_file_info(Name, [raw]) of + {ok, #file_info{type=regular}} -> true; + _ -> false + end. + %% ------------------------------------------------------------------------- %% Begin copypasta from gen_server2.erl |