Attention is currently required from: fixeria.
laforge has uploaded a new patch set (#4) to the change originally created by fixeria. ( https://gerrit.osmocom.org/c/pysim/+/42375?usp=email )
The following approvals got outdated and were removed:
Verified+1 by Jenkins Builder
The change is no longer submittable: Verified is unsatisfied now.
Change subject: global_platform: fix store_data() returning last chunk only
......................................................................
global_platform: fix store_data() returning last chunk only
The loop builds up `response` across multiple STORE DATA blocks,
but the function returns only `data` - the response from the
*last* block. It should return the accumulated response instead.
Change-Id: I3e15c8004d1e366e8c3896e559656622f48bb1a2
---
M pySim/global_platform/__init__.py
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/75/42375/4
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/42375?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I3e15c8004d1e366e8c3896e559656622f48bb1a2
Gerrit-Change-Number: 42375
Gerrit-PatchSet: 4
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Attention is currently required from: daniel, dexter, lynxis lazus, neels.
laforge has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/pysim/+/42353?usp=email )
Change subject: docs/put_key: add tutorial that explains how to manage global platform keys
......................................................................
Patch Set 5:
(2 comments)
File docs/put_key-tutorial.rst:
https://gerrit.osmocom.org/c/pysim/+/42353/comment/677d853a_aa55c651?usp=em… :
PS5, Line 38: an ISD-P (Issuer
: Security Domain - Profile) exist. (see also: https://euicc-manual.osmocom.org/docs/lpa/applet-id/)
:
: On top of this, an eSIM profile may establish its own `securityDomain`. This `securityDomain` is comparable to the
: Issuer Security Domain (ISD) we also find on UICCs.
The ISD-P is identical with the [first/main] "securityDomain establised by the eSIM profile". The two separate paragraphs read as if those are separate things
https://gerrit.osmocom.org/c/pysim/+/42353/comment/ecdc10e0_7a3146a0?usp=em… :
PS5, Line 78: `SCP02` is slightly
: older and commonly used on UICCs. The more modern `SCP03` is commonly used on eUICCs.
I would remove the "commonly used" sections here. Simply stating one is the older than the other and the two algorithms should be sufficient and we know is factually true. I would argue neither SCP02 nor SCP03 are particularly common with UICCs nor eUICCS as what is common there is SCP80 and SCP81. No normal phone has any code to perform SCP02/SCP03.
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/42353?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I163dfedca3df572cb8442e9a4a280e6c5b00327e
Gerrit-Change-Number: 42353
Gerrit-PatchSet: 5
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: daniel <dwillmann(a)sysmocom.de>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 20 Mar 2026 21:30:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
fixeria has submitted this change. ( https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/42450?usp=email )
Change subject: rest_server: fix TOC/TOU race when listing/fetching E-RABs
......................................................................
rest_server: fix TOC/TOU race when listing/fetching E-RABs
The list of E-RAB FSM pids is a snapshot taken at one point in time.
By the time we interrogate each erab_fsm process individually, any of
them may have already terminated (e.g. bearer released mid-request).
The current code fails to generate a response if this happens.
* fetch_erab_info/1: add a pid() clause that wraps erab_list_item/1
in a try/catch, returning 'error' if the process is gone.
* fetch_erab_info/1: catch both exit forms
** `{noproc, _}` raised by gen_statem:call/2 on a monitored pid, and
** the bare noproc atom for other code paths.
* fetch_erab_list/1: switch from lists:map to lists:filtermap and
call fetch_erab_info/1 per E-RAB, silently dropping any that died
between the snapshot and the per-process interrogation.
Change-Id: I160b413aa535f2379ad4e40a3ae8f37c5bce2067
Related: SYS#7066
---
M src/rest_server.erl
1 file changed, 14 insertions(+), 6 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
laforge: Looks good to me, but someone else must approve
fixeria: Looks good to me, approved
diff --git a/src/rest_server.erl b/src/rest_server.erl
index 315c66e..19554ac 100644
--- a/src/rest_server.erl
+++ b/src/rest_server.erl
@@ -523,14 +523,17 @@
error.
--spec fetch_erab_info(binary()) -> {ok, erab_fsm:erab_info()} | error.
+-spec fetch_erab_info(binary() | pid()) -> {ok, erab_fsm:erab_info()} | error.
fetch_erab_info(<< "pid:", Val/bytes >>) ->
- Pid = parse_pid(Val),
- %% guard against non-existent process IDs
- %% TODO: check if the given Pid is actually an erab_fsm
+ fetch_erab_info(parse_pid(Val));
+
+fetch_erab_info(Pid) when is_pid(Pid) ->
+ %% erab_fsm process may have already terminated
+ %% guard against that by catching noproc
try erab_list_item({pid, Pid}) of
ErabInfo -> {ok, ErabInfo}
catch
+ exit:noproc -> error;
exit:{noproc, _} -> error
end;
@@ -542,12 +545,17 @@
-spec fetch_erab_list(enb_registry:enb_info()) -> [map()].
fetch_erab_list(#{pid := EnbPid}) ->
ERABs = enb_proxy:fetch_erab_list(EnbPid),
- lists:map(fun erab_list_item/1, ERABs).
+ lists:filtermap(
+ fun({_, Pid}) ->
+ case fetch_erab_info(Pid) of
+ {ok, ErabInfo} -> {true, ErabInfo};
+ error -> false
+ end
+ end, ERABs).
-spec erab_list_item({term(), pid()}) -> map().
erab_list_item({_, Pid}) ->
- %% XXX: E-RAB FSM process might be dead here
Info = erab_fsm:fetch_info(Pid),
{MmeUeId, ErabId} = maps:get(uid, Info),
M0 = #{mme_ue_id => MmeUeId,
--
To view, visit https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/42450?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: I160b413aa535f2379ad4e40a3ae8f37c5bce2067
Gerrit-Change-Number: 42450
Gerrit-PatchSet: 3
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>