diff options
-rw-r--r-- | include/osmocom/sim/sim.h | 6 | ||||
-rw-r--r-- | src/sim/core.c | 8 | ||||
-rw-r--r-- | utils/osmo-sim-test.c | 2 |
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); |