summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/sim/sim.h6
-rw-r--r--src/sim/core.c8
-rw-r--r--utils/osmo-sim-test.c2
3 files changed, 9 insertions, 7 deletions
diff --git a/include/osmocom/sim/sim.h b/include/osmocom/sim/sim.h
index e818a657..d7c42427 100644
--- a/include/osmocom/sim/sim.h
+++ b/include/osmocom/sim/sim.h
@@ -240,13 +240,13 @@ struct osim_file {
struct osim_file_desc *
-osim_file_find_name(struct osim_file_desc *parent, const char *name);
+osim_file_desc_find_name(struct osim_file_desc *parent, const char *name);
struct osim_file_desc *
-osim_file_find_fid(struct osim_file_desc *parent, uint16_t fid);
+osim_file_desc_find_fid(struct osim_file_desc *parent, uint16_t fid);
struct osim_file_desc *
-osim_file_find_sfid(struct osim_file_desc *parent, uint8_t sfid);
+osim_file_desc_find_sfid(struct osim_file_desc *parent, uint8_t sfid);
/* STATUS WORDS */
diff --git a/src/sim/core.c b/src/sim/core.c
index ddddc7dc..2f129c9e 100644
--- a/src/sim/core.c
+++ b/src/sim/core.c
@@ -172,7 +172,7 @@ add_adf_with_ef(struct osim_file_desc *parent,
}
struct osim_file_desc *
-osim_file_find_name(struct osim_file_desc *parent, const char *name)
+osim_file_desc_find_name(struct osim_file_desc *parent, const char *name)
{
struct osim_file_desc *ofd;
llist_for_each_entry(ofd, &parent->child_list, list) {
@@ -184,7 +184,7 @@ osim_file_find_name(struct osim_file_desc *parent, const char *name)
}
struct osim_file_desc *
-osim_file_find_fid(struct osim_file_desc *parent, uint16_t fid)
+osim_file_desc_find_fid(struct osim_file_desc *parent, uint16_t fid)
{
struct osim_file_desc *ofd;
llist_for_each_entry(ofd, &parent->child_list, list) {
@@ -196,10 +196,12 @@ osim_file_find_fid(struct osim_file_desc *parent, uint16_t fid)
}
struct osim_file_desc *
-osim_file_find_sfid(struct osim_file_desc *parent, uint8_t sfid)
+osim_file_desc_find_sfid(struct osim_file_desc *parent, uint8_t sfid)
{
struct osim_file_desc *ofd;
llist_for_each_entry(ofd, &parent->child_list, list) {
+ if (ofd->sfid == SFI_NONE)
+ continue;
if (ofd->sfid == sfid) {
return ofd;
}
diff --git a/utils/osmo-sim-test.c b/utils/osmo-sim-test.c
index d6299e94..e8617484 100644
--- a/utils/osmo-sim-test.c
+++ b/utils/osmo-sim-test.c
@@ -276,7 +276,7 @@ static struct msgb *try_select_adf_usim(struct osim_chan_hdl *st)
/* attach the USIM profile, FIXME: do this based on AID match */
st->card->prof = osim_cprof_usim(st->card);
- st->cwd = osim_file_find_name(st->card->prof->mf, "ADF.USIM");
+ st->cwd = osim_file_desc_find_name(st->card->prof->mf, "ADF.USIM");
msgb_free(msg);