voicecall: don't dereference a supplied null value

When the voicecall atom is unregistered we remove all HFP support as
well but were supplying a zero as value to the emulator status
callbacks which caused the process to crash as we were dereferencing
the supplied value always and not respecting a zero as indicator to
reset.
This commit is contained in:
Simon Fels 2015-11-20 09:36:54 +01:00 committed by Denis Kenzior
parent 1c9ed8af0e
commit 06480bdf53
1 changed files with 12 additions and 3 deletions

View File

@ -2665,16 +2665,25 @@ static void emulator_hfp_unregister(struct ofono_atom *atom)
struct ofono_voicecall *vc = __ofono_atom_get_data(atom);
struct ofono_modem *modem = __ofono_atom_get_modem(atom);
struct emulator_status data;
data.vc = vc;
data.status = OFONO_EMULATOR_CALL_INACTIVE;
__ofono_modem_foreach_registered_atom(modem,
OFONO_ATOM_TYPE_EMULATOR_HFP,
emulator_call_status_cb, 0);
emulator_call_status_cb, &data);
data.status = OFONO_EMULATOR_CALLSETUP_INACTIVE;
__ofono_modem_foreach_registered_atom(modem,
OFONO_ATOM_TYPE_EMULATOR_HFP,
emulator_callsetup_status_cb,
0);
&data);
data.status = OFONO_EMULATOR_CALLHELD_NONE;
__ofono_modem_foreach_registered_atom(modem,
OFONO_ATOM_TYPE_EMULATOR_HFP,
emulator_callheld_status_cb, 0);
emulator_callheld_status_cb,
&data);
__ofono_modem_foreach_registered_atom(modem,
OFONO_ATOM_TYPE_EMULATOR_HFP,