File 0361-Raise-badarg-if-both-ram-and-raw-are-given-to-file-o.patch of Package erlang
From 29d1dd118312b54c36576843c68305218285969b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@dashbit.co>
Date: Mon, 24 Aug 2020 13:05:54 +0200
Subject: [PATCH] Raise badarg if both ram and raw are given to file:open
---
lib/kernel/src/file.erl | 6 ++++--
lib/kernel/test/file_SUITE.erl | 1 +
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/kernel/src/file.erl b/lib/kernel/src/file.erl
index 860b8ecc84..a84b4c3bbf 100644
--- a/lib/kernel/src/file.erl
+++ b/lib/kernel/src/file.erl
@@ -526,10 +526,12 @@ open(Item, ModeList) when is_list(ModeList) ->
Error ->
Error
end;
- {true, _Either} ->
+ {true, false} ->
raw_file_io:open(file_name(Item), ModeList);
{false, true} ->
- ram_file:open(Item, ModeList)
+ ram_file:open(Item, ModeList);
+ {true, true} ->
+ erlang:error(badarg, [Item, ModeList])
end;
%% Old obsolete mode specification in atom or 2-tuple format
diff --git a/lib/kernel/test/file_SUITE.erl b/lib/kernel/test/file_SUITE.erl
index eafd4f38dd..e4609cf645 100644
--- a/lib/kernel/test/file_SUITE.erl
+++ b/lib/kernel/test/file_SUITE.erl
@@ -1289,6 +1289,7 @@ open_errors(Config) when is_list(Config) ->
Real = filename:join(DataDir, "realmen.html"),
{error, enotdir} = ?FILE_MODULE:open(Real, [directory]),
+ {'EXIT', {badarg, _}} = catch(?FILE_MODULE:open("foo", [raw, ram])),
[] = flush(),
ok.
--
2.26.2