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

openSUSE Build Service is sponsored by