summaryrefslogtreecommitdiff
path: root/src/sim.c
diff options
context:
space:
mode:
authorAnirudh Gargi <anirudh.gargi@intel.com>2019-03-07 10:53:38 +0530
committerDenis Kenzior <denkenz@gmail.com>2019-03-07 10:24:54 -0600
commite54ac6bcd4c34973500ef54c8255f33cdecdef30 (patch)
treed5700d14b5bb526d8e8d62ee5e3a1ea849a325bb /src/sim.c
parent54b8639c0e8cad483f879ac591e6e5aceb970c8f (diff)
downloadofono-e54ac6bcd4c34973500ef54c8255f33cdecdef30.tar.gz
sim: fix segfault in sim atom
While adding the sim pin cache feature, pin_name could cause issue in cases when sim pin is not there. log: ofonod[27810]: drivers/atmodem/sim.c:at_cpin_cb() crsm_pin_cb: READY ofonod[27810]: src/sim.c:sim_pin_query_cb() sim->pin_type: 0, pin_type: 0 ofonod[27810]: Aborting (signal 11) [./src/ofonod] ofonod[27810]: ++++++++ backtrace ++++++++ ofonod[27810]: #0 0x7fb7a7586cb0 in /lib/x86_64-linux-gnu/libc.so.6 ofonod[27810]: #1 0x7fb7a7693cd8 in /lib/x86_64-linux-gnu/libc.so.6 ofonod[27810]: #2 0x4d899b in sim_pin_query_cb() at src/sim.c:3174 ofonod[27810]: #3 0x4649e7 in at_cpin_cb() at drivers/atmodem/sim.c:1304 ofonod[27810]: #4 0x4a5d70 in at_chat_finish_command() at gatchat/gatchat.c:462
Diffstat (limited to 'src/sim.c')
-rw-r--r--src/sim.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/sim.c b/src/sim.c
index 104ddd14..c6ea4b03 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -3127,7 +3127,7 @@ static void sim_pin_query_cb(const struct ofono_error *error,
DBusConnection *conn = ofono_dbus_get_connection();
const char *path = __ofono_atom_get_path(sim->atom);
struct cached_pin *cpins = pin_cache_lookup(sim->iccid);
- const char *pin_name;
+ const char *pin_name = sim_passwd_name(pin_type);
char **locked_pins;
gboolean lock_changed;
@@ -3140,7 +3140,6 @@ static void sim_pin_query_cb(const struct ofono_error *error,
if (sim->pin_type != pin_type) {
sim->pin_type = pin_type;
- pin_name = sim_passwd_name(pin_type);
if (pin_type != OFONO_SIM_PASSWORD_NONE &&
password_is_pin(pin_type) == FALSE)