File 1373-stdlib-Make-ets-tab2file-return-error-badtab-if-priv.patch of Package erlang

From 989f67e2803279680542eebbe9ee471b0c600f64 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 12 Jan 2026 18:03:53 +0100
Subject: [PATCH 3/3] stdlib: Make ets:tab2file return {error,badtab} if
 private table

Yes, ets:tab2file for some reason returns error tuple for bad table
instead of badarg exception like all others.

So we make tab2file more consistent with itself.
---
 lib/stdlib/src/ets.erl        | 9 ++++++++-
 lib/stdlib/test/ets_SUITE.erl | 7 +------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/lib/stdlib/src/ets.erl b/lib/stdlib/src/ets.erl
index 39c675fc33..6ea424278f 100644
--- a/lib/stdlib/src/ets.erl
+++ b/lib/stdlib/src/ets.erl
@@ -2388,7 +2388,14 @@ tab2file(TabArg, File, Options) ->
 		     end, 
 		     true}
 	    end,
-	    ets:safe_fixtable(Table,true),
+            try
+                ets:safe_fixtable(Table,true)
+            catch
+                error:badarg ->
+                    %% Table is probably someone else's private.
+                    %% Be consistent and return error tuple.
+                    throw(badtab)
+            end,
 	    {NewState1,Num} = try
 				  NewState = LogFun(InitState,Info),
 				  dump_file(
diff --git a/lib/stdlib/test/ets_SUITE.erl b/lib/stdlib/test/ets_SUITE.erl
index db151e9d14..d613da27c0 100644
--- a/lib/stdlib/test/ets_SUITE.erl
+++ b/lib/stdlib/test/ets_SUITE.erl
@@ -3761,12 +3761,7 @@ bad_table_call(T,{F,Args,_}) ->
 bad_table_call(T,{F,Args,_,tabarg_last}) ->
     {'EXIT',{badarg,_}} = (catch apply(ets, F, Args++[T]));
 bad_table_call(T,{F,Args,_,{return,Return}}) ->
-    try
-	Return = apply(ets, F, [T|Args])
-    catch
-	error:badarg -> ok
-    end.
-
+    Return = apply(ets, F, [T|Args]).
 
 %% Check rename of ets tables.
 rename(Config) when is_list(Config) ->
-- 
2.51.0

openSUSE Build Service is sponsored by